2017-11-17 9 views
0

私は、M×Nの行列Aと、Mxというインデックスベクトルindを持っています。 N×1ベクトルci = 1,2、...、Nを取得したいと思います。例えば行列の各列から1つの要素を新しいベクトルから選択する方法は?

、聞かせて

A = hilb(5); 
ind = [2,3,1,4,2]'; 

は、どのように私は、ベクトルcを得ることができますか? sub2indが何をするかだ

+1

['sub2ind'](https://es.mathworks.com/help/matlab/ref/sub2ind.html)を確認してください。 –

答えて

2

c = A((0:numel(ind)-1) * size(A,1) + ind(:).'); 

linear indexingに読み、これがどのように機能するかを理解するには、次の

c = A(sub2ind(size(A), ind(:).', 1:numel(ind))); 

あなたはまた、手動で少しスピードを高めるために行うことができます。

関連する問題