행렬의 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
주석은 %
반복문
for 변수명 = 초기값:(증분):최종값
문장
end