如何在MATLAB中创建Python中的数字范围

时间:2015-06-30 16:36:05

标签: python matlab range

有没有办法在Python中使用简单的语法在MATLAB中创建一系列数字,即不使用循环。例如:

MATLAB: a = 1:0.5:10a = [1 1.5 2 2.5 3 3.5 .... 9.5 10]

4 个答案:

答案 0 :(得分:7)

正如其他人所指出的,np.arange让你最接近你习惯的matlab。但是,np.arange排除了终点。您在自己的答案中提出的解决方案可能会导致错误的结果(请参阅我的评论)。

然而,这将始终有效:

start = 0
stop = 3
step = 0.5
a = np.arange(start, stop+step, step)

进一步阅读:特别是如果您是经验丰富的matlab用户,本指南/备忘单可能很有趣:http://wiki.scipy.org/NumPy_for_Matlab_Users

答案 1 :(得分:5)

Numpy的aranger_看起来像这样:

import numpy as np
print(np.arange(1, 3, .5))
# [ 1.   1.5  2.   2.5]
print(np.r_[1:3:.5])
# [ 1.   1.5  2.   2.5]

请注意,它与matlab略有不同,首先,与matlab相比,stop和step的顺序在numpy中相反,而第二个stop不包含在结果中。您可能还会考虑使用linspace,当您使用浮点数时,它通常优先于arange,因为num可以比step更精确地定义:

print(np.linspace(1, 3, num=5))
# [ 1.   1.5  2.   2.5  3. ]

print(np.linspace(1, 3, num=4, endpoint=False))
# [ 1.   1.5  2.   2.5]

答案 2 :(得分:2)

import numpy as np
a = np.arange(1, 10, 0.5)
print (a)

答案 3 :(得分:1)

内置xrange函数的Python可以生成如下整数:

xrange(start, stop, step)

但是xrange不能做浮动。