2015-10-07 22 views
0

我想索引一個大數組,所以倒數第二我可以有一個四維數組,每個點的值,我可以在matlab中使用sub2ind做到這一點,但我不能如何在python做,任何幫助,將不勝感激(我也不知道我的索引是正確的(我知道MATLAB從1,蟒蛇從0)提前python中的多索引

#Create the array 
[Nx, Ny, Nz] = (60, 220, 85) 
[I, J, K] = (np.arange(1,Nx+1,1),np.arange(1,Ny+1,1),np.arange(1,Nz+1,1)) 
[I, J, K] = np.meshgrid(I, J, K) 

print([I]) 
ix=np.ravel_multi_index((Nx,Ny,Nz), (I[:], J[:], K[:]), order='F') 

感謝

這是一個3d陣列

+0

[MATLAB ind2sub等效在Python]的可能的複製(http://stackoverflow.com/questions/28995146/matlab-ind2sub-equivalent-in-python)(反之亦然)。 – brodoll

+0

對不起,這是一個三維陣列 –

+0

您是對的,它有類似的內容,但不直接地址3D案例 – brodoll

回答

1

似乎工作,認爲這是因爲索引和沒有結構E中的參數正確

#Create the array 
[Nx, Ny, Nz] = (60, 220, 85) 
[I, J, K] = (np.arange(0,Nx,1),np.arange(0,Ny,1),np.arange(0,Nz,1)) 

[I, J, K] = np.meshgrid(I, J, K) 

#Create the 1-d idexed array 
ix = np.ravel_multi_index((I,J,K),(Nx,Ny,Nz),order='F') 

print(ix) 
+0

我看到你在正確的軌道與索引約定差異 – brodoll