如何从矩阵的每列中选择一个元素到新的向量?

时间:2017-11-17 16:36:36

标签: arrays matlab matrix

我有M×N矩阵AM×1索引向量ind。我希望获得N×1向量c,其中c(i) = A(ind(i),i)i = 12,... N

例如,让

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

如何获取向量c

1 个答案:

答案 0 :(得分:2)

这就是sub2ind的作用:

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

您也可以手动执行此操作以提高速度:

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

要了解其工作原理,请阅读linear indexing