我如何将此代码从matlab转换为python?

时间:2015-02-14 19:38:18

标签: python arrays matlab numpy vector

我想转换这个Matlab代码

[data ones(N,1)]
到了Numpy。如何有效地做到这一点?

3 个答案:

答案 0 :(得分:1)

numpy语法非常相似。要创建N乘1的数组,请使用:

>>> import numpy as np
>>> N = 5
>>> np.ones((N, 1))
array([[ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.]])

如果你想要1 by N:

>>> np.ones((1, N))
array([[ 1.,  1.,  1.,  1.,  1.]])

答案 1 :(得分:1)

我想你的问题还包括数组dataones(N, 1)的横向连接,正如Matlab®中的[data ones(N,1)]所做的那样。 因此,添加其他人给出的答案,您可以使用np.hstack来连接两个数组。
例:

>>> import numpy as np
>>> N = 5
>>> data = [[1],
... [2],
... [3],
... [4],
... [5]]
>>> np.hstack((data,np.ones((N,1))))
array([[ 1.,  1.],
       [ 2.,  1.],
       [ 3.,  1.],
       [ 4.,  1.],
       [ 5.,  1.]])

np.hstack将水平连接两个数组datanp.ones(N,1)(沿轴= 1)。
我希望这会有所帮助。

答案 2 :(得分:0)

令人惊讶的是,该函数在numpy中被命名为相同 - np.ones()。它会创建一个填充了一个指示形状的数组。