매트랩,MATLAB

매트랩,MATLAB (rev. 1.5)

tmp notes 1

행렬의 transpose(^T)는 '를 씀.
ex. $\displaystyle {\bf a}$$\displaystyle {\bf b}^{\top}$ 를 대입하는 방법은 a=b'

원소별 제곱은 .^2
ex.
>> b
b =
   1   2   3
>> b.^2
ans =
   1   4   9
>>

영행렬 - 영행렬,zero_matrix
m×n 영행렬 : zeros(m,n)
n×n 영행렬 : zeros(n)
ex.
>> zeros(2,3)
ans =
   0   0   0
   0   0   0
>> zeros(3)
ans =
   0   0   0
   0   0   0
   0   0   0
(마찬가지로 1만으로 이루어진 행렬은 ones()로 만들 수 있다)

sum()에 대해.
행렬에 적용하면 열별로 더한다. 모든 항목을 더하려면 sum(sum())을 쓴다.
(sum()은 행연산보다 열연산을 우선시한다. 다만 행 하나에만 sum()을 적용하면 행의 원소들을 더한다.)
ex.
>> a=[1,2,3;4,5,6;7,8,9];
>> a
a =
   1   2   3
   4   5   6
   7   8   9
>> sum(a)
ans =
   12   15   18
>> sum(sum(a))
ans = 45

max() min()도 열연산을 우선시한다. 각 열별로 가장 큰/작은 것을 돌려준다.
>> a=[1,2,3;4,5,6;7,8,9];
>> max(a)
ans =
   7   8   9
>> min(a)
ans =
   1   2   3

행렬의 크기,size를 물어보면 길이 2인 벡터로 답해준다.
MATLAB에서 길이,length는 size를 이루는 두 수 중에서 더 큰 값을 뜻한다.
>> a=zeros(3,4);
>> size(a)
ans =
   3   4
>> length(a)
ans = 4

행렬의 곱은 A*B
행렬의 원소별 곱은 A.*B

행렬의 일부
>> a=[1 2 3;4 5 6;7 8 9]
a =
   1   2   3
   4   5   6
   7   8   9

>> a(2,1:2) /// 2행의 1~2 뽑아내기
ans =
   4   5

>> a(2,2:end) /// 2행의 2~끝 뽑아내기
ans =
   5   6

>> a(3,:) /// 3행 전체 뽑아내기
ans =
   7   8   9

// logical_matrix / logical_vector 였나? logic이었나? 암튼 참이면 1, 거짓이면 0인 그것. 그걸 토대로 원 벡터의 일부만 뽑아내기
>> x=[1 2 3 4 5]; y=[5 4 3 2 1];

>> x<y
ans =
  1  1  0  0  0

>> x>y
ans =
  0  0  0  1  1

>> x(x<y)
ans =
   1   2

>> y(x<y)
ans =
   5   4

>> x(x>=y)
ans =
   3   4   5

// from 7시간만에 배우는 MATLAB 기초 (Part1) - YouTube https://www.youtube.com/watch?v=16AuurBEVuM