매트랩에서 행렬 계산을 할 때 두 행렬 간 차원이 맞지 않아 계산이 안되는 경우가 있다.
행렬의 모든 열에 같은 벡터를 외적하고 싶다해보자.
외적 함수인 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
'Software > MATLAB' 카테고리의 다른 글
[MATLAB] .txt 파일 행렬로 읽어오기 (fopen, fscanf) (0) | 2025.01.20 |
---|---|
[MATLAB] Figure 창 모니터 특정 위치에 고정하기 (0) | 2025.01.14 |
[MATLAB] 내가 자주 쓰는 단축키 (0) | 2025.01.14 |
[MATLAB] yyaxis : Plot y축 좌우 2개 설정 (0) | 2025.01.02 |
[MATLAB] linkaxes: Subplot 축 확대 동기화 (0) | 2024.12.31 |