MATLAB
연산자는 컴파일러에게 특정 수학적 또는 논리적 조작을 수행하도록 지시하는 기호입니다. MATLAB은 주로 전체 행렬과 배열에서 작동하도록 설계되었습니다. 따라서 MATLAB의 연산자는 스칼라와 비스칼라 데이터 모두에서 작동합니다. MATLAB은 다음 유형의 기본 연산을 허용합니다.
MATLAB은 두 가지 다른 유형의 산술 연산을 허용합니다.
행렬 산술 연산은 선형 대수에서 정의된 것과 동일합니다. 배열 연산은 1차원 및 다차원 배열에서 요소별로 실행됩니다.
행렬 연산자와 배열 연산자는 점(.) 기호로 구분됩니다. 그러나 덧셈과 뺄셈 연산은 행렬과 배열에서 동일하므로 두 경우 모두 연산자가 동일합니다. 다음 표는 연산자에 대한 간략한 설명을 제공합니다.
예제 보기
| 번호 | 연산자 및 설명 |
|---|---|
| 1 | + 덧셈 또는 단항 플러스. A+B는 변수 A와 B에 저장된 값을 더합니다. A와 B는 크기가 같아야 하며, 하나가 스칼라인 경우는 예외입니다. 스칼라는 어떤 크기의 행렬에도 더할 수 있습니다. |
| 2 | - 뺄셈 또는 단항 마이너스. A-B는 A에서 B의 값을 뺍니다. A와 B는 크기가 같아야 하며, 하나가 스칼라인 경우는 예외입니다. 스칼라는 어떤 크기의 행렬에서도 뺄 수 있습니다. |
| 3 | * 행렬 곱셈. C = A*B는 행렬 A와 B의 선형 대수적 곱입니다. 더 정확히 말하면,
비스칼라 A와 B의 경우 A의 열 개수는 B의 행 개수와 같아야 합니다. 스칼라는 어떤 크기의 행렬에도 곱할 수 있습니다. |
| 4 | .* 배열 곱셈. A.*B는 배열 A와 B의 요소별 곱입니다. A와 B는 크기가 같아야 하며, 둘 중 하나가 스칼라인 경우는 예외입니다. |
| 5 | / 슬래시 또는 행렬 오른쪽 나눗셈. B/A는 대략 B*inv(A)와 같습니다. 더 정확히 말하면, B/A = (A'\B')'. |
| 6 | ./ 배열 오른쪽 나눗셈. A./B는 요소 A(i,j)/B(i,j)를 가진 행렬입니다. A와 B는 크기가 같아야 하며, 둘 중 하나가 스칼라인 경우는 예외입니다. |
| 7 | \ 역슬래시 또는 행렬 왼쪽 나눗셈. A가 정사각 행렬이면 A\B는 대략 inv(A)*B와 같지만 다른 방식으로 계산됩니다. A가 n×n 행렬이고 B가 n개 성분의 열 벡터이거나 여러 개의 그런 열을 가진 행렬이면, X = A\B는 방정식 AX = B의 해입니다. A가 잘못 스케일링되었거나 거의 특이하면 경고 메시지가 표시됩니다. |
| 8 | .\ 배열 왼쪽 나눗셈. A.\B는 요소 B(i,j)/A(i,j)를 가진 행렬입니다. A와 B는 크기가 같아야 하며, 둘 중 하나가 스칼라인 경우는 예외입니다. |
| 9 | ^ 행렬 거듭제곱. X^p는 p가 스칼라인 경우 X의 p제곱입니다. p가 정수면 거듭제곱은 반복 제곱으로 계산됩니다. 정수가 음수면 X가 먼저 역행렬로 변환됩니다. 다른 p 값의 경우 고유값과 고유벡터를 사용하여 계산하며, [V,D] = eig(X)라면 X^p = V*D.^p/V입니다. |
| 10 | .^ 배열 거듭제곱. A.^B는 요소 A(i,j)를 B(i,j) 제곱한 행렬입니다. A와 B는 크기가 같아야 하며, 둘 중 하나가 스칼라인 경우는 예외입니다. |
| 11 | ' 행렬 전치. A'는 A의 선형 대수적 전치입니다. 복소수 행렬의 경우 복소수 공액 전치입니다. |
| 12 | .' 배열 전치. A.'는 A의 배열 전치입니다. 복소수 행렬의 경우 공액을 포함하지 않습니다. |
관계 연산자도 스칼라와 비스칼라 데이터 모두에서 작동할 수 있습니다. 배열에 대한 관계 연산자는 두 배열 간의 요소별 비교를 수행하고, 관계가 참인 곳에 논리 1(true), 거짓인 곳에 논리 0(false)로 설정된 동일한 크기의 논리 배열을 반환합니다.
다음 표는 MATLAB에서 사용 가능한 관계 연산자를 보여줍니다.
예제 보기
| 번호 | 연산자 및 설명 |
|---|---|
| 1 | < 보다 작음 |
| 2 | <= 보다 작거나 같음 |
| 3 | > 보다 큼 |
| 4 | >= 보다 크거나 같음 |
| 5 | == 같음 |
| 6 | ~= 같지 않음 |
MATLAB은 두 가지 유형의 논리 연산자와 함수를 제공합니다.
요소별 − 이 연산자는 논리 배열의 대응하는 요소에서 작동합니다.
단락 평가(Short-circuit) − 이 연산자는 스칼라와 논리 표현식에서 작동합니다.
요소별 논리 연산자는 논리 배열에서 요소별로 작동합니다. 기호 &, |, ~는 논리 배열 연산자 AND, OR, NOT입니다.
단락 평가 논리 연산자는 논리 연산에서 단락 평가를 허용합니다. 기호 &&와 ||는 논리 단락 평가 연산자 AND와 OR입니다.
예제 보기
비트 연산자는 비트에서 작동하며 비트별 연산을 수행합니다. &, |, ^에 대한 진리표는 다음과 같습니다.
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
A = 60, B = 13이라고 가정하면 이진 형식으로는 다음과 같습니다.
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
MATLAB은 '비트 AND', '비트 OR', '비트 NOT' 연산, 시프트 연산 등 다양한 비트 연산 함수를 제공합니다.
다음 표는 일반적으로 사용되는 비트 연산을 보여줍니다.
예제 보기
| 함수 | 용도 |
|---|---|
| bitand(a, b) | 정수 a와 b의 비트별 AND |
| bitcmp(a) | 정수 a의 비트별 보수 |
| bitget(a,pos) | 정수 배열 a에서 지정된 위치 pos의 비트 가져오기 |
| bitor(a, b) | 정수 a와 b의 비트별 OR |
| bitset(a, pos) | a의 특정 위치 pos에 비트 설정 |
| bitshift(a, k) | a를 k비트만큼 왼쪽으로 시프트한 값 반환, 2k 곱하기와 동일. k의 음수 값은 오른쪽으로 시프트하거나 2|k|로 나누고 음의 무한대 쪽으로 반올림에 해당. 오버플로 비트는 잘림. |
| bitxor(a, b) | 정수 a와 b의 비트별 XOR |
| swapbytes | 바이트 순서 바꾸기 |
MATLAB은 합집합, 교집합, 집합 소속 테스트 등 집합 연산을 위한 다양한 함수를 제공합니다.
다음 표는 일반적으로 사용되는 일부 집합 연산을 보여줍니다.
예제 보기
| 번호 | 함수 및 설명 |
|---|---|
| 1 | intersect(A,B) 두 배열의 집합 교집합; A와 B에 공통된 값 반환. 반환된 값은 정렬된 순서. |
| 2 | intersect(A,B,'rows') A의 각 행과 B의 각 행을 단일 엔티티로 취급하고 A와 B에 공통된 행 반환. 반환된 행렬의 행은 정렬된 순서. |
| 3 | ismember(A,B) A와 같은 크기의 배열 반환, A의 요소가 B에서 발견되면 1(true), 그렇지 않으면 0(false). |
| 4 | ismember(A,B,'rows') A의 각 행과 B의 각 행을 단일 엔티티로 취급하고, 행렬 A의 행이 B의 행이기도 한 곳에 1(true)을 포함하는 벡터 반환. 그렇지 않으면 0(false). |
| 5 | issorted(A) A의 요소가 정렬된 순서이면 논리 1(true) 반환, 그렇지 않으면 논리 0(false). 입력 A는 벡터이거나 N×1 또는 1×N 문자열 셀 배열일 수 있음. A가 정렬되어 있다고 간주되는 조건은 A와 sort(A)의 출력이 같은 경우. |
| 6 | issorted(A, 'rows') 2차원 행렬 A의 행이 정렬된 순서이면 논리 1(true) 반환, 그렇지 않으면 논리 0(false). 행렬 A가 정렬되어 있다고 간주되는 조건은 A와 sortrows(A)의 출력이 같은 경우. |
| 7 | setdiff(A,B) 두 배열의 집합 차집합; A에 있지만 B에는 없는 값 반환. 반환된 배열의 값은 정렬된 순서. |
| 8 | setdiff(A,B,'rows') A의 각 행과 B의 각 행을 단일 엔티티로 취급하고 A에 있지만 B에는 없는 행 반환. 반환된 행렬의 행은 정렬된 순서. 'rows' 옵션은 셀 배열을 지원하지 않음. |
| 9 | setxor 두 배열의 집합 배타적 OR |
| 10 | union 두 배열의 집합 합집합 |
| 11 | unique 배열의 고유 값 |
MATLAB
diff 명령으로 도함수 계산 MATLAB diff 명령은 심볼릭 도함수를 계산합니다. 기본 형태: diff(f). 예제: f(t) = 3t² + 2t⁻² 미분 syms t f = 3*t^2 + 2*t^(-2); diff(f) 결과: ans = 6*t - 4/t^3 Octave equivalent pkg load symbolic symbols t = sym(t); f = 3*t^2 + 2*t^(-2); differentiate(f, t) 미분 기본 규칙 검증 주요 규칙: 선형성: (af+bg) = af + bg 합/차: (f
다항식 표현 MATLAB은 다항식을 내림차순 계수 행 벡터로 표현합니다. 예: P(x) = x⁴ + 7x³ - 5x + 9 → p = [1 7 0 -5 9] (x² 항 계수 0 명시). 다항식 평가 (polyval, polyvalm) polyval(p, x): 스칼라 x에서 다항식 값 계산 polyvalm(p, X): 행렬 X에 대한 행렬 다항식 계산 (X는 정방행렬) 예제: x=4에서 평가 p = [1 7 0 -5 9]; polyval(p, 4) 결과: 693 예제: 행렬 다항식 평가 p = [1 7 0 -5 9]; X