Software/MATLAB

[MATLAB] repmat: 벡터를 반복하여 행렬 생성

_winmin 2025. 1. 3. 10:44

매트랩에서 행렬 계산을 할 때 두 행렬 간 차원이 맞지 않아 계산이 안되는 경우가 있다.

 

행렬의 모든 열에  같은 벡터를 외적하고 싶다해보자.

외적 함수인 cross는 두 파라미터의 차원이 같아야하기 때문에, 행 크기가 같은 벡터와 행렬을 넣어줘도 에러가 뜬다. 

x = [1,2,3]'; % 3x1
A = rand(3,3); % 3x3

cross(x,A); % error : x and A must be the same size

 

이때, repmat 함수를 이용하여 벡터를  A의 열 수만큼 반복해 만들어주면 cross를 실행할 수 있다.

x_mat = repmat(x,1,3); % x를 반복하여 A와 같은 size로 만들어준다.
cross(x_mat,A) % Works!

 


Reference

https://www.mathworks.com/help/matlab/ref/repmat.html