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中的行号从矩阵中选择条目
我有矩阵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中的行号从矩阵中选择条目
你只需要使用sub2ind
转换行标,B
和列标,1:numel(B)
,为线性指数
C = A(sub2ind(size(A), B, 1:numel(B)));
感谢@Suever! – Frey