안녕하세요.
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 고수님들 도와주세요.
>> 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에서 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'))
sub2ind의 자세한 용법은 http://www.mathworks.com/help/techdoc/ref/sub2ind.html 를 참고하세요!
============================== 꿈꾸는소년
답변 감사합니다.
sub2ind의 이용방법을 이번에 잘 알게 되였습니다.
꽃 이모티콘 없나요? ^_^
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
>> 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의 이용방법을 이번에 잘 알게 되였습니다.
꽃 이모티콘 없나요? ^_^
의심하지 마라, 두려워하지 마라!
댓글 달기