2017-06-03 31 views
0

在我的代碼中,有一個矩陣可以動態增加大小。在MATLAB中的僞代碼如下:如何處理在foor循環中大小不等的數組

cnt = 0 
for ii = 1:M 
    for jj = 1:N 
     if (condition satisfied) 
      cnt = cnt + 1 
      A(cnt, :, :) = I # I is a matrix that is created within the loop 
     end 
    end 
end 

如何使用NumPy的實現這在Python?

+0

MATLAB矩陣不能動態調整大小。他們假裝是,但MATLAB正在創建一個新數組,並且每次通過一個循環將所有數據複製到新數組中。這就是爲什麼MATLAB編輯器會警告你不要在循環中調整數組的大小。 – TheBlackCat

回答

1
import numpy as np 

A = list() 
for i in range(M): 
    for j in range(N): 
     if condition satisfied: 
      A.append(I) # I is a ndarray created within the loop. 

A = np.array(A) 
+0

一個np.array需要進一步重塑才能獲得這個Matlab相當於 – jingweimo

+0

@jingweimo我不這麼認爲。 – Sraw

+0

@ Jingweimo:你試過了嗎? – TheBlackCat