标签: matlab matrix vectorization
我找不到令人满意的答案。如果A是大小为(m,n,k)的3D矩阵,则Z是大小为mxn的二维矩阵(值为1到k的整数),我想提取如下定义的S:
for i=1:m for j=n S(i,j) = A(i,j,Z(i,j)); end end
是否有一种有效的(矢量化)方法可以做到这一点?
提前谢谢
答案 0 :(得分:2)
您可以使用linear indexing执行此操作,如下所示:
S = reshape(A((1:m*n).' + m*n*(Z(:)-1)), m, n);