2017-03-27 285 views
1

我找不到滿意的答案。如果A是大小(M,N,k)的三維矩陣,Z是尺寸爲m×n的2D矩陣,我想提取s定義像這樣(1和k之間的值的整數):從3D矩陣和matlab索引數組中提取2D矩陣

for i=1:m 
    for j=n 
     S(i,j) = A(i,j,Z(i,j)); 
    end 
end 

有沒有一種高效(矢量化)的方式來做到這一點?

預先感謝您

回答

2

則可以使用linear indexing如下操作:

S = reshape(A((1:m*n).' + m*n*(Z(:)-1)), m, n); 
+0

你寫,我壓抑的)和編輯的消息。 – yann