矢量作为矩阵中的列索引

时间:2013-05-12 14:26:44

标签: matlab matrix matrix-indexing

给定矩阵Amxn)和向量Bmx1)我想创建一个向量Cmx1 )其中每个行元素是A索引的列中B的行元素 是否可以在不使用循环的情况下执行此操作?

A = [1 2; 3 4; 5 6];
B = [2 1 1].';

然后我想:

C = [2 3 5].';

1 个答案:

答案 0 :(得分:6)

B的列下标转换为线性索引,然后使用它们来引用A中的元素:

idx = sub2ind(size(A), (1:size(A, 1)).', B);
C = A(idx);

(有关更多信息,请阅读this answer中有关线性索引的部分)。