A=[1 2 3 ; 4 5 6] 인 2*3 행렬이 있다. 여기서 2번째 행만 제거하고 싶으면 어떻게 할까?
콜론(:)을 이용하면 쉽게 제거가 가능하다.
A(2,:)=[] 는 A의 2번째 행의 모든 요소를 포함하고, 이를 빈 요소로 만든다는 의미이다.
A=[1 2 3; 4 5 6];
A(2,:)=[];
A
이를 실행하면 다음과 같이 2번째 행이 사라진 것을 알 수 있다.
그럼 3*3 행렬에서 2번째 행을 제거하면 가운데가 빈채로 남아있을까?
A=[1 2 3; 4 5 6;7 8 9];
A(2,:)=[];
A
이 코드를 실행하고 A 행렬이 어떻게 구성되어있는지 작업공간에 들어가서 확인해보면 다음과 같다.
빈 채로 남아있지 않고 3행이 한칸 올라가 2행의 요소가 된 것을 확인할 수 있다.
그럼 행렬에 행과 열을 추가하려면 어떻게 할까?
이 때는 같은 차원의 행벡터, 열벡터를 만들고 ,를 이용해서 추가할 수 있다.
A=[1 2 3; 4 5 6;7 8 9];
A=[A;[4,5,6]];
A
이 코드에서 A에 ;[4,5,6]을 추가함으로써 4번째 행에 [4,5,6]이 생긴 것을 알 수 있다.
그럼 이번엔 행렬에 행이나 열 벡터를 삽입하는 방법을 살펴보자.
일단 행렬에 행과 열벡터를 삽입하는 함수같은건 없다. 그래서 기존에 제거하고 추가하는 방식을 응용해서 행과 열벡터를 삽입 할 수 있다.
삽입할 행번호를 k로 지정하면 A의 1부터 k번째 행, 추가한 행, k+1부터 마지막 행으로 순서를 지정할 수 있다. 이를 코드로 구현하면 다음과 같다.
A=[1 2 3; 4 5 6;7 8 9];
k=2;
B=[2 4 6];
A=[A(1:k,:);B;A(k+1:end,:)];
A
여기서 end는 행렬의 마지막 인덱스를 나타낸다. 예를들어 A(end)는 9이고, A(2,end)는 6이다.
행렬의 순서를 바꾸는 것도 콜론(:)을 이용하면 쉽게 바꿀 수 있다.
A행렬의 1행과 3행을 바꿔보자. 1행에 3행을 동시에 바꾸려면 이전 데이터를 한번에 바꾸면 된다.
A(:,[1 end]) = A(:,[end 1]);
마지막 행은 1행이 대입되고, 1번째 행은 마지막 행이 대입됨으로써 순서가 바뀌게 된다.
'Matlab' 카테고리의 다른 글
[Matlab] 잡다한 함수 정리 : hypot(a,b), size(a,b), issorted(A), find(), strfind(), rand(n), randi(), randperm() deal(), isvector(A) (0) | 2023.04.30 |
---|---|
[Matlab] times table 만들기 (0) | 2023.04.29 |
[Matlab] 1 2 2 3 3 3 4 4 4 4 만들기 : repelem(v,n) (0) | 2023.04.29 |
[Matlab] 완전 제곱수를 찾는 방법 : any(), ismember() (0) | 2023.04.28 |
[Matlab] 문자열 행렬에서 일치하는 문자 인덱스 찾기 : strcmp, logical array (0) | 2023.04.24 |
댓글