배열 연산과 행렬 연산
소개
MATLAB®에는 두 가지 유형의 산술 연산, 즉 배열 연산과 행렬 연산이 있습니다. 산술 연산은 예를 들어 두 수의 합, 배열 요소의 거듭제곱, 두 행렬의 곱과 같은 수치 계산을 수행합니다.
행렬 연산은 선형 대수 규칙을 따릅니다. 반면에, 배열 연산은 요소별 연산을 수행하고 다차원 배열을 지원합니다. 마침표(.
)는 배열 연산과 행렬 연산을 구분합니다. 그러나, 덧셈과 뺄셈에서는 행렬 연산과 배열 연산이 동일하므로 문자 쌍 .+
및 .-
는 필요하지 않습니다.
배열 연산
배열 연산은 벡터, 행렬, 다차원 배열의 대응 요소에 대해 요소별 연산을 수행합니다. 피연산자의 크기가 동일한 경우 첫 번째 피연산자의 각 요소는 두 번째 피연산자에 있는 동일한 위치의 요소와 대응합니다. 피연산자의 크기가 서로 호환되는 경우 각 입력값은 다른 피연산자의 크기와 일치시키기 위해 필요한 만큼 묵시적으로 확장됩니다.
간단한 예로, 크기가 동일한 두 개의 벡터는 더할 수 있습니다.
A = [1 1 1]
A = 1 1 1
B = [1 2 3]
B = 1 2 3
A+B
ans = 2 3 4
피연산자가 하나는 스칼라이고 다른 하나는 스칼라가 아닐 경우, MATLAB은 다른 피연산자와 동일한 크기가 되도록 스칼라를 묵시적으로 확장합니다. 예를 들어, 스칼라와 행렬의 요소별 곱을 계산할 수 있습니다.
A = [1 2 3; 1 2 3]
A = 1 2 3 1 2 3
3.*A
ans = 3 6 9 3 6 9
다음과 같이 3×3 행렬에서 1×3 벡터를 뺄 경우에도 두 크기가 서로 호환되므로 묵시적 확장이 가능합니다. 뺄셈을 수행하면, 벡터가 3×3 행렬이 되도록 묵시적으로 확장됩니다.
A = [1 1 1; 2 2 2; 3 3 3]
A = 1 1 1 2 2 2 3 3 3
m = [2 4 6]
m = 2 4 6
A - m
ans = -1 -3 -5 0 -2 -4 1 -1 -3
행 벡터와 열 벡터는 크기가 서로 호환됩니다. 1×3 벡터를 2×1 벡터에 더하는 경우 MATLAB이 요소별 덧셈을 수행하기 전에 각 벡터가 2×3 행렬로 묵시적으로 확장됩니다.
x = [1 2 3]
x = 1 2 3
y = [10; 15]
y = 10 15
x + y
ans = 11 12 13 16 17 18
두 피연산자의 크기가 호환되지 않는 경우에는 오류가 발생합니다.
A = [8 1 6; 3 5 7; 4 9 2]
A = 8 1 6 3 5 7 4 9 2
m = [2 4]
m = 2 4
A - m
Arrays have incompatible sizes for this operation.
자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.
다음 표에는 MATLAB의 배열 산술 연산자에 대한 요약이 나와 있습니다. 함수 관련 정보를 보려면 마지막 열에 있는 함수 도움말 페이지 링크를 클릭하십시오.
연산자 | 용도 | 설명 | 함수 도움말 페이지 |
---|---|---|---|
| 덧셈 |
| plus |
| 단항 플러스 |
| uplus |
| 뺄셈 |
| minus |
| 단항 마이너스 |
| uminus |
| 요소별 곱셈 |
| times |
| 요소별 거듭제곱 |
| power |
./ | 우측 배열 나눗셈 |
| rdivide |
| 좌측 배열 나눗셈 |
| ldivide |
| 배열 전치 |
| transpose |
행렬 연산
행렬 연산은 선형 대수의 규칙을 따르며 다차원 배열과 호환되지 않습니다. 입력값들의 크기와 형태는 연산에 따라 다릅니다. 비 스칼라 입력값의 경우 일반적으로 행렬 연산자는 대응되는 배열 연산자와는 다른 답을 계산합니다.
예를 들어, 행렬 오른쪽 나눗셈 연산자 /
를 사용하여 두 행렬을 나눌 경우 행렬에 포함된 열의 수가 동일해야 합니다. 그러나, 행렬 곱셈 연산자 *
를 사용하여 두 행렬을 곱할 경우 행렬은 공통적인 내부 차원(Inner Dimension)을 가져야 합니다. 즉, 첫 번째 입력값의 열 개수는 두 번째 입력값의 행 개수와 같아야 합니다. 행렬 곱셈 연산자는 다음 공식을 통해 두 행렬의 곱을 계산합니다.
두 행렬의 곱을 계산하여 이를 확인할 수 있습니다.
A = [1 3;2 4]
A = 1 3 2 4
B = [3 0;1 5]
B = 3 0 1 5
A*B
ans = 6 15 10 20
위의 행렬 곱셈 결과는 아래의 요소별 곱셈 결과와 일치하지 않습니다.
A.*B
ans = 3 0 2 20
다음 표에는 MATLAB의 행렬 산술 연산자가 간략히 설명되어 있습니다. 함수 관련 정보를 보려면 마지막 열에 있는 함수 도움말 페이지 링크를 클릭하십시오.
연산자 | 용도 | 설명 | 함수 도움말 페이지 |
---|---|---|---|
| 행렬 곱셈 |
| mtimes |
| 행렬 왼쪽 나눗셈 |
| mldivide |
| 행렬 오른쪽 나눗셈 |
| mrdivide |
| 행렬 거듭제곱 |
| mpower |
| 켤레 복소수 전치 |
| ctranspose |