2017-03-23 36 views
0

我有矩阵A=rand(M,N)和行向量B=randi([1 M],1,N)。我想根据B中的行号将条目从A分配到C。那就是 C(1,1)=A(B(1,1),1),C(1,2)=A(B(1,2),2)等等。有没有简单的方法得到C而不使用for循环?根据MATLAB中的行号从矩阵中选择条目

回答

1

你只需要使用sub2ind转换行标,B和列标,1:numel(B),为线性指数

C = A(sub2ind(size(A), B, 1:numel(B))); 
+0

感谢@Suever! – Frey