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