본문 바로가기
로봇/MATLAB

MATLAB 행렬 관련

by 33곰탱 2024. 8. 30.

MATLAB 은 다른 언어와 달리 행렬 계산이 매우 편합니다...!   

잘 외우고 있거나 습득한다면 정말 유용하게 쓸 수 있어요!!

   

MATLAB을 코드블럭에서 지원 안 해줘서 슬프다.. ㅠㅠ 인줄 알았는데 나중에 찾았다 ㅎㅎ

 

 

 

벡터, 행렬 생성

format rat -> 분수 형식으로 나타냄
lcd(a,b) -> a와 b의 최소공배수 곱 4, 42 -> 2^2, 2*3*7-> 2^2*3*7
gcd(a,b) -> 최대공약수 구하기

Arrays
t = [1,2,3 4 5 6] %매트랩에서 행렬은 콤마(,)또는 띄어쓰기로 구분 
Creation of row vector
t = [m:q:n] -> m부터 n-1까지 q만큼 증가
t = m:q:n
t = (m:q:n)


Creation of Column vector 
t = [1; 2; 3;] 
t = [1
	 2
	 3] %이렇게도 쓸 수 있음

t = [1 2 3]' % '으로 row -> column 바꿀 수 있음

linspace(a,b,n) a부터 b까지 n개의 Row vector
-> linspace(2,14,6) -> 2부터 14까지 6개의 Row vector 만듬 2 4.4 6.8 9.2 11.6 14...
logspace(a,b,n) a부터 b까지 log를 사용해서 n개를 만듬
-> logspace(0,3,4) -> 1 10 100 1000

complex number 생성할때 띄어쓰기 금지!
5 - 2i -> 5, -2i로 생성됨 따라서 5-2i로 생성하기

Creating 2D Arrays
A = [1 2 3; 4 5 6; 7 8 9] 또는
A = [1 2 3
		 4 5 6
		 7 8 9]
		 
Transpose Row -> Column or Column -> Row
vt = v'
xt = x'


% complex number의 경우 Transpose를 하면 부호가 바뀌게 되지만
% ex) v=[1+2i 3+4i] v' = [1-2i 3-4i] v.' 을 하면 v.' = [1+2i 3+4i] 그대로 보존됨 %'

다른 프로그래밍들과 다르게 v(0)이 아닌 v(1)로 시작 v(1) = 1+2i

Row vector -> Column vector
vt = v(:) -> [1,2,3] -> [1
                         2
                         3]

 

위는 행렬을 어떻게 만드는지에 대해 관했다면 아래 코드는 만든 행렬에 대해 수정하고 바꾸는 코드들이다.

벡터, 행렬 수정

end = 마지막 요소(수?) 말하는 듯
v = [1 2]
v(end+1) = 1 -> v = [1 2 1]
v(end+1 : length(v)+3) = [3 4 5] %이런 방식으로 사용 가능

zeros(m,n) m x n의 0 행렬
ones(m,n) m x n의 1행렬

cat(dim,A,B,C'') 
dim=1 -> row 방향
dim=2 -> column 방향

size(벡터) -> m x n 헹령에서 m과 n알려줌
length(벡터) -> m과 n중 큰거 출력
abs(A) 절대값 A
diag(벡터) -> 대각선 만들어줌(정사각형 형태로)
v(row, col) -> (행, 열)
elements 지우고 싶으면 v(숫자) = [] 하면 됨



reshape(A,m,n) -> 행렬 A를 m x n의 형식으로 바꿈 ,n은 입력하지 않아도 자동으로 입력됨. 
find(A) = 정렬
str = '~~~'
배열방식으로 쓰고 싶으면
char = ('~~~', '~~~~') 방식 사용

 

https://github.com/Heuisub/2024-MATLAB-PROGRAMMING/blob/main/Week2.md

 

2024-MATLAB-PROGRAMMING/Week2.md at main · Heuisub/2024-MATLAB-PROGRAMMING

Let's learn about MATLAB PROGRAMMING! Contribute to Heuisub/2024-MATLAB-PROGRAMMING development by creating an account on GitHub.

github.com

 

'로봇 > MATLAB' 카테고리의 다른 글

MATLAB 툴박스 추가 설치 방법  (1) 2024.09.22
MATLAB 입출력, 파일 읽기 내보내기 등등  (1) 2024.09.15
MATLAB 행렬곱, 해 구하기등  (0) 2024.08.31
MATLAB 기본  (0) 2024.08.20