행렬과 배열
MATLAB은 "Matrix Laboratory"의 약어입니다. 다른 프로그래밍 언어에서는 대부분 수를 한 번에 하나씩 다루지만, MATLAB®은 행렬이나 배열 단위로 연산을 수행합니다.
MATLAB의 모든 변수는 데이터형에 관계없이 다차원 배열입니다. 행렬은 선형 대수에 주로 사용되는 2차원 배열입니다.
배열 생성
행 하나에 네 개의 요소가 포함된 배열을 만들려면 요소를 쉼표(,
)나 공백으로 구분하십시오.
a = [1 2 3 4]
a = 1×4
1 2 3 4
이 유형의 배열을 행 벡터라고 합니다.
행이 여러 개인 행렬을 만들려면 행을 세미콜론으로 구분하십시오.
a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3
1 3 5
2 4 6
7 8 10
행렬을 만드는 또 다른 방법은 ones
, zeros
, rand
같은 함수를 사용하는 것입니다. 예를 들어, 0으로 구성된 5×1 열 벡터를 만들어 보겠습니다.
z = zeros(5,1)
z = 5×1
0
0
0
0
0
행렬 연산과 배열 연산
MATLAB에서는 단일 산술 연산자 또는 함수를 사용하여 행렬의 모든 값을 처리할 수 있습니다.
a + 10
ans = 3×3
11 13 15
12 14 16
17 18 20
sin(a)
ans = 3×3
0.8415 0.1411 -0.9589
0.9093 -0.7568 -0.2794
0.6570 0.9894 -0.5440
행렬을 전치하려면 작은따옴표('
)를 사용하십시오.
a'
ans = 3×3
1 2 7
3 4 8
5 6 10
*
연산자를 사용하면 행과 열 간의 내적을 계산하는 표준 행렬 곱셈을 수행할 수 있습니다. 예를 들어, 행렬에 역행렬을 곱하면 단위 행렬이 됨을 확인해 보겠습니다.
p = a*inv(a)
p = 3×3
1.0000 0.0000 -0.0000
0 1.0000 -0.0000
0 0.0000 1.0000
여기서 p
는 정수 값으로 구성된 행렬이 아닙니다. MATLAB에서는 수를 부동소수점 값으로 저장하는데, 산술 연산은 실제 값과 그 부동소수점 표현 간의 작은 차이에 민감합니다. format
명령을 사용하면 더 많은 소수점 자릿수를 표시할 수 있습니다.
format long
p = a*inv(a)
p = 3×3
0.999999999999996 0.000000000000007 -0.000000000000002
0 1.000000000000000 -0.000000000000003
0 0.000000000000014 0.999999999999995
다음을 사용하여 화면의 표시 내용을 짧은 표기 형식으로 재설정합니다.
format short
format
은 숫자의 표시에만 영향을 미치며 MATLAB에서 수를 계산하거나 저장하는 데에는 영향을 주지 않습니다.
행렬 곱셈이 아닌 요소별 곱셈을 수행하려면 .*
연산자를 사용하십시오.
p = a.*a
p = 3×3
1 9 25
4 16 36
49 64 100
곱셈, 나눗셈, 거듭제곱에 사용되는 각 행렬 연산자에는 요소별로 연산을 수행하는 배열 연산자가 하나씩 있습니다. 예를 들어, a
의 각 요소를 세제곱해 보겠습니다.
a.^3
ans = 3×3
1 27 125
8 64 216
343 512 1000
결합
결합(Concatenate)은 배열을 결합하여 더 큰 배열을 만드는 과정입니다. 실제로 위에서 첫 번째 배열을 만들 때 해당 개별 요소들을 결합(Concatenate)했습니다. 대괄호 쌍([]
)은 결합 연산자입니다.
A = [a,a]
A = 3×6
1 3 5 1 3 5
2 4 6 2 4 6
7 8 10 7 8 10
쉼표를 사용하여 나란히 인접한 배열을 서로 결합하는 것을 가로 결합이라고 합니다. 각 배열의 행 개수는 동일해야 합니다. 마찬가지로, 배열의 열 개수가 동일한 경우 세미콜론을 사용하여 배열을 세로로 결합할 수 있습니다.
A = [a; a]
A = 6×3
1 3 5
2 4 6
7 8 10
1 3 5
2 4 6
7 8 10
복소수
복소수에는 실수부와 허수부가 모두 있는데, 이 경우 허수 단위는 -1
의 제곱근입니다.
sqrt(-1)
ans = 0.0000 + 1.0000i
복소수의 허수부를 표현하려면 i
또는 j
를 사용하십시오.
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex
3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i