给定矩阵A
(mxn
)和向量B
(mx1
)我想创建一个向量C
(mx1
)其中每个行元素是A
索引的列中B
的行元素
是否可以在不使用循环的情况下执行此操作?
A = [1 2; 3 4; 5 6];
B = [2 1 1].';
然后我想:
C = [2 3 5].';
答案 0 :(得分:6)
将B
的列下标转换为线性索引,然后使用它们来引用A
中的元素:
idx = sub2ind(size(A), (1:size(A, 1)).', B);
C = A(idx);
(有关更多信息,请阅读this answer中有关线性索引的部分)。