给定一个矩阵 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);

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

关于matlab - 向量作为矩阵中的列索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16508379/

10-14 12:31
查看更多