Hi there, I have a quick question concerning MATLAB: given A matrix A(mxn) and a Vector B(m,1) I want to create a vector C(m,1) in which each row element is the row element of A from a comlumn indexed by B. So suppose A = [ 1 2; 3 4; 5 6] and B = [2 1 1]' than C should be C = [2 35]. How can I do this using as few computational power as possible (without loops?) ?
cheers Sebastian

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 5 月 12 日

0 投票

A = [ 1 2; 3 4; 5 6]
B = [2 1 1]'
C=A(sub2ind(size(A),(1:size(A,1))',B))

その他の回答 (2 件)

Matt J
Matt J 2013 年 5 月 12 日
編集済み: Matt J 2013 年 5 月 12 日

0 投票

C=A( sub2ind([m,n],1:m,B') )
Sebastian
Sebastian 2013 年 5 月 13 日

0 投票

Thanks guys!

カテゴリ

ヘルプ センター および 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