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