2017-06-03 66 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