본문 바로가기
Matlab

[Matlab] 행과 열 제거하기, 추가하기, 삽입하기, 순서 바꾸기

by Mene 2023. 4. 29.
반응형

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번째 행은 마지막 행이 대입됨으로써 순서가 바뀌게 된다.

 

반응형

댓글