Lets say i got a 10x10 matrix, lets call it M , and I want to select the data from [a,b] and [c,d]. Of course i could do this one at a time like this:
val_1 = M(a,b);
val_2 = M(c,d);
But I get my points handed in two separate vector, lets call them q and p, one with row indexes and one with column indexes like such:
q = [a c];
p = [b d];
Additionally I would like the values I select, to be combined in a vector as well. That is
vals = [val_1 val_2];
So my question is whether there is a clever way to do this? I mean it would be quite easy to just loop though the coordinates one-by-one, but there has to be a smarter, clearer way to do this? I hope you understand what I mean, it got a bit confusing :-p

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2014년 3월 21일
편집: Azzi Abdelmalek 2014년 3월 21일

8 개 추천

q = [a c];
p = [b d];
idx=sub2ind(size(M),q,p);
out=M(idx)

댓글 수: 1

Jakob Sørensen
Jakob Sørensen 2014년 3월 21일
I knew there had to be a clever way, thank you very much!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by