이 강의는 2015b 버전을 기초로 만들어짐
randi(a,m,n) 1부터 a까지 mxn개의 개수 랜덤 발생
e) randi([-10 10],3,3) -10부터 10까지 사이의 개수에서 3x3 행렬 생성
지금부터 할 건 잘 숙지해두지 않으면 나중에 헷갈리거나 까먹을 수 있다.
A =
10 9
5 2
A를 한 열로 정리하고 싶으면
>> A(:)
ans =
10
5
9
2
A의 n번째 수와 m번째 수까지 표시
이를 보면 배열의 번호는
1 3
2 4
이렇게 매겨지는 것을 알 수 있다.
>> A(2:3)
ans =
5 9
>> A(1:3)
ans =
10 5 9
>> A(:,1:2) : A의 행은 관계없이 1부터 2열까지 표시
ans =
10 9
5 2
>> B=randi([0 10],3,5)
B =
4 10 9 8 7
10 7 10 8 1
8 0 7 4 7
>> B(2, 2:5) : B의 2행 2~5열 표시
ans =
7 10 8 1
>> B([1 3],2:5) : B의 1, 3행의 2~5열 표시
ans =
10 9 8 7
0 7 4 7
>> B(:,2:end) : B의 행은 관계없이 2열부터 마지막 열까지 표시
ans =
10 9 8 7
7 10 8 1
0 7 4 7
max(A) : A라는 행렬에서 각 열마다 가장 큰 값 단 행이 하나일 경우 그 행에서 가장 큰 값
A =
-5 13 -5 12
1 10 4 -1
-4 1 3 5
-3 15 11 4
>> max(A)
ans =
1 15 11 12
[x,k]=max(A) : A라는 행렬에서 x는 위에서 동일한 논리로 가장 큰 값을 받고 k는 해당 값의 인덱스(위치)를 나타낸다.
위치 번호는 행 먼저 세고 열을 세는 식으로 이뤄진다.
3x3 행렬일 경우 위치는
1 4 7
2 5 8
3 6 9
처럼 세어진다.
>> [x,k]=max(A)
x =
1 15 11 12
k =
2 4 4 1
max(A,[],2) 는 각 행마다 큰 값을 받아온다.
max(A')는 값은 같게 나오지만 행렬을 전치행렬(행렬을 교환하여 얻는 행렬)을 만들고 그것의 열마다 가장 큰 값을 얻어오는 것이므로
값만 같게 나오지 형태는 다르게 나온다.
A =
7 7 5 3
8 7 10 8
8 2 4 3
3 2 6 6
>> max(A)
ans =
8 7 10 8
>> max(A,[],2)
ans =
7
10
8
6
>> max(A')
ans =
7 10 8 6
같은 논리를 적용받는 min(변수)가 있다.
sort(변수) : 변수의 행렬을 오름차순으로 정렬한다. 옵션을 붙여 내림차순으로 바꿀 수 있다.
sort(변수,'descend') 내림차순 sort(c,'ascend') 오름차순
sort(변수,1,'descend') : 열을 정렬
sort(변수,2,'descend') : 행을 정렬
a =
6 12 4
7 -2 3
2 8 -9
란 행렬이 있으면
>> sort(a,1)
ans =
2 -2 -9
6 8 3
7 12 4
각 열을 오름차순으로 정렬했다
>> sort(a,2)
ans =
4 6 12
-2 3 7
-9 2 8
각 행을 오름차순으로 정렬했다.
sum(변수) : 열마다 더한 값 행이 하나면 행을 더한 값
sum(변수,2) : 행마다 더한 값
cat(1, A, B) : A와 B 행렬을 위아래로 합친다
A
B <- 이런 형태
cat(2, A, B) : A와 B 행렬을 양옆으로 합친다.
A B <- 이런 형태
cat(3, A, B) : A와 B를 3차원으로 합친다.
xyz 좌표구간을 생각했을 때 위에 1,2가 xy축 안에서 합치는 거라면 3으로 합치는 cat은 z축으로 합친다
>> A=randi(10,2,2)
A =
7 10
9 6
>> B=randi(10,2,2)
B =
2 3
2 9
>> cat(1,A,B)
ans =
7 10
9 6
2 3
2 9
>> cat(2,A,B)
ans =
7 10 2 3
9 6 2 9
>> cat(3,A,B)
ans(:,:,1) =
7 10
9 6
ans(:,:,2) =
2 3
2 9
>> C=cat(1,A,B)
C =
7 10
9 6
2 3
2 9
>> C1=cat(2,A,B)
C1 =
7 10 2 3
9 6 2 9
>> C2=cat(3,A,B)
C2(:,:,1) =
7 10
9 6
C2(:,:,2) =
2 3
2 9
>> size(C2)
ans =
2 2 2
>> size(C1)
ans =
2 4
>> size(C1)
ans =
2 4
>> size(C)
ans =
4 2
행렬 간 계산에서는 기호 옆에 .을 붙여줘야 한다.
A.*B
A./B
A.\B
A.^B
'공부 > 프로그래밍' 카테고리의 다른 글
matlab(매틀랩) programing 강의 180326 (0) | 2018.04.21 |
---|---|
matlab(매틀랩) programing 강의 181321 (0) | 2018.04.21 |
matlab(매틀랩) programing 강의 180314 (0) | 2018.04.21 |
matlab programing 강의 180312 (0) | 2018.04.21 |
matlab programing 강의 180307 (0) | 2018.03.29 |