2017-09-07 34 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.]])