공학/matlab

matlab 정리-1.행렬과 배열

뤠이튼 2021. 3. 14. 23:18

※이 글은 매틀랩 도움말센터 MATLAB Documentation - MathWorks 한국을 가지고 따라 하며 만든 자료입니다

 

MATLAB Documentation - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com

 

 

매틀랩에서는 아주높은 빈도로 행렬이 사용됩니다. 오늘은 행렬과 배열 파트를 따라가 보도록 하겠습니다.

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