2017-09-07 33 views
2

我如何初始化和追加数组像MATLAB的Python:追加像MATLAB

for i = 1:10 
    myMat(i,:) = [1,2,3] 
end 

感谢阵列。

+0

你是什么意思通过“数组”? –

回答

1

你应该看看numpy如果你想类似于MATLAB的数组构造一个对象。有很多方法可以使用numpy构造数组,但是听起来您可能对joiningappending感兴趣。

但是,做什么在你的问题的MATLAB代码做最严格的办法是先建立阵列,然后assign to it by slice

import numpy as np 

mat = np.empty((10, 3)) 
for idx in range(10): 
    mat[idx, :] = [1, 2, 3] 

print(mat) 

这将输出

[[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.] 
[ 1. 2. 3.]] 
1

如果您在Python中没有任何图书馆这样做,那么你就可以用文字和列表理解,像这样

myMat = [[1,2,3] for _ in range(10)] 

如果从MATLAB来的Python我建议寻找到初始化数组图书馆numpy,它展现出与具有特殊“numpy数组”的MatLab matricies非常相似的行为。在NumPy的,你可以这样做,像这样

import numpy as np 
myMat = np.empty((10,3)) 
myMat[:] = [1,2,3] 
1

这里有一个办法:

In [18]: import numpy as np 

In [19]: a = np.empty((10, 3)) 

In [20]: a[:] = np.array([1,2,3]) 

In [21]: a 
Out[21]: 
array([[ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.], 
     [ 1., 2., 3.]])