매트랩,MATLAB

Difference between r1.1 and the current

@@ -1,3 +1,136 @@
#noindex
= tmp notes 1 =
행렬의 transpose(^T)는 '를 씀.
ex. ${\bf a}$ 에 ${\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
}}}
 
// from 7시간만에 배우는 MATLAB 기초 (Part1) - YouTube https://www.youtube.com/watch?v=16AuurBEVuM
 
----
CMP [[옥타브,Octave]]
----
YouTube:MATLAB


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

주석은 %

반복문
for 변수명 = 초기값:(증분):최종값
    문장
end

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