Matlab에서 행렬관련 질문올립니다.
글쓴이: uhahaha / 작성시간: 수, 2011/03/30 - 8:29오후
안녕하세요.
Matlab관련 질문 하나 올립니다.
A = 8 7 4
2 9 2
3 6 1
라는 행렬이 있고,
B = 2
3
1
이 B는 A행렬의 매 행의 인덱스값을 가진 행렬입니다.
저는 이 A와 B를 결합시켜
A의 1행의 2번째값, 2번째행의 3번째값, 3번행의 1번째값 즉,
C = 7
2
3
라는 행렬을 얻고 싶은데 어떤 연산자 혹은 함수를 써야 할까요?
Matlab 고수님들 도와주세요.
Forums:


>> A = [8 7 4;2 9 2;3 6
>> A = [8 7 4;2 9 2;3 6 1];
>> B = [2; 3; 1];
>> C = [A(1, B(1)); A(2, B(2)); A(3, B(3))];
>> C
C =
7
2
3
>>
답변 감사합니다.
답변 정말 감사합니다.
한가지 더 궁금한것은 3 x 3 행렬이 아니고 무지 큰 행렬이라면 수동으로 다 쓸순 없고 어떻게 다른 방도는 없을까요?
-_-
의심하지 마라, 두려워하지 마라!
matlab의 index를 잘 이용하면..
Matlab에서 matrix의 row, col element들의 index가 어떻게 되는지를 잘 이용하면 쉽게 해결할 수 있습니다.
>> A=[8 7 4; 2 9 2; 3 6 1];
>> B=[2 ; 3 ;1];
>> C=A(sub2ind(size(A), [1:3], B'))
C =
7 2 3
sub2ind의 자세한 용법은 http://www.mathworks.com/help/techdoc/ref/sub2ind.html 를 참고하세요!
==============================
꿈꾸는소년
답변 감사합니다.
답변 감사합니다.
sub2ind의 이용방법을 이번에 잘 알게 되였습니다.
꽃 이모티콘 없나요? ^_^
의심하지 마라, 두려워하지 마라!