※이 글은 매틀랩 도움말센터 MATLAB Documentation - MathWorks 한국을 가지고 따라 하며 만든 자료입니다
매틀랩에서는 아주높은 빈도로 행렬이 사용됩니다. 오늘은 행렬과 배열 파트를 따라가 보도록 하겠습니다.
Matlab의 모든변수는 데이터의 형과 관계없이 다차원 배열입니다 즉 행렬의 모양을 하며 2차원 배열의 모습을 하고 있지요
배열 생성
직접 생성
a=[1 2 3 4]
or
a=[1,2,3,4]
matlab은 보시다시피 , 와 띄어쓰기로 열을 구분합니다. 이번엔 2차원 배열을 만들어보겠습니다 각 행의 구분은 ;으로 합니다
a=[1 2 3;4 5 6;7 8 9]
a=[1,2,3;4,5,6;7,8,9]
함수 생성
배열의 생성 또 다른 방법으로는 ones, zeros, rand등의 함수를 이용하는 방법 있습니다 도움말에는 zeros만 나와있군요
-zeros : 모두 0으로 구성된 배열을 생성하고 () 없이 쓰면 0을 반환 한합니다 배열은 (n,..., m) 형태로 나타냅니다
zeros(5,2)
zeros다음 각각 5행 2열을 만든 걸 볼 수 있습니다
-ones : 모두 1로 구성된 배열을 생성하고 () 없이 쓰면 1을 반환합니다 배열은 (n,..., m) 형태로 나타냅니다
ones(5,2)
이번에도 같군요
-rand: 난수를 반환하는 함수입니다 기본은 0~1 사이의 난수를반환하고 x=rand(n,..,m)을쓸경우 nx..xm형태의 배열을 만들어줍니다
rand(5,2)
rand 기본은 0~1사이의 난수입니다
행렬 연산
매틀랩에서는 배열에 단일 산술 연산자(+-*/.*./.^)또는 함수(sin, cos, tan)를 사용해서 행렬의 모든 값을 바꿀 수 있습니다
단일 산술 연산자
a=[1 2 3;4 5 6;7 8 9]
a+10
행렬 내의 모든 값에 10씩 더해진 걸 볼 수 있습니다
함수를 통한 계산
a=[1 2 3;4 5 6;7 8 9]
sin(a)
모든 행렬 값에 sin을 곱했습니다 sin 1 º 는 0.01745240643인데 왜 0.8415가 나왔을까요 sin 함수는 단위를 rad으로 받습니다 아래 레퍼런스를 적어두겠습니다
행렬 전치시키기
말 그대로 행과 열을 교환한 전치 행렬을 만들어내는 방법입니다 해당 행렬에 작은따옴표(') 붙이면 됩니다
a=[1 2 3;4 5 6;7 8 9]
a'
행렬곱과 역행렬과 단위행렬
행렬곱은 *연산자를 이용하여 연산합니다(행렬 요소의 곱이 아닙니다)
행렬*역행렬=단위행렬임으로 그것이 맞는지 확인해보겠습니다 역행렬을 만든 함수는 inv입니다
a=[1 2 3;4 5 6;7 8 10]
y=a*inv(a)
format
포맷은 숫자의 형식이나 줄 간격 등을 표시할 때 사용합니다
matlab은 수를 부동소수점 값을 저장하는데 위 단위행렬이 전부 표시가 안된 걸 볼 수 있습니다 이럴 때 fomat을 이용하여 더 많은 소수점 자리를 표시하거나 반대로 줄일 수 있습니다
format long
y=a*inv(a)
중요한 형식 인자만 정리하도록 하겠습니다
숫자 형식
줄 형식
행렬 곱셈이 아닌 요소별 곱셈
행렬곱이 아닌 요소별 곱셈 또는 요소별 계산은. 을 붙여 씁니다 요소별 곱셈은.*연산자를 사용합니다 자세한 사항은 아래 숨김 글에 적어두겠습니다
a=[1 2 3;4 5 6;7 8 10]
y=a.*a
결합
결합은 배열을 결합하여 더 큰 배열로 만드는 과정입니다 []이 결합 연산자입니다
a=[1 2 3;4 5 6;7 8 10]
[a,a]
처음 배열을 만들었을 때처럼 , 띄어쓰기 그리고; 로 각각 열과 행을 구분합니다
복소수
복소수에는 실수부와 허수부가 모두 있는데, 이 경우 허수 단위는 -1의 제곱근입니다 그렇기에 sqrt() 제곱근 함수에 -1을 제곱 근하여 만들어보겠습니다
sqrt(-1)
복소수 행렬
복소수의 허수 부분은 i 또는 j를 사용합니다
a= [3+4i, 4+3j; -i, 10j]
'공학 > matlab' 카테고리의 다른 글
matlab정리 - 5.함수호출 (0) | 2021.03.19 |
---|---|
matlab 정리 - 4. 텍스트와 문자 (0) | 2021.03.19 |
matlab 정리 - 3.작업 공간 변수 (0) | 2021.03.16 |
matlab 정리 - 2.배열인덱싱 (0) | 2021.03.15 |
Matlab 정리 0 - matlab이란? (0) | 2021.03.12 |