【发布时间】:2014-01-27 12:35:16
【问题描述】:
在 Python 中是否有与 range() 函数等效的 MATLAB 函数?
我真的希望能够输入类似range(-10, 11, 5) 的内容并返回[-10, -5, 0, 5, 10],而不必手动写出整个范围。
【问题讨论】:
在 Python 中是否有与 range() 函数等效的 MATLAB 函数?
我真的希望能够输入类似range(-10, 11, 5) 的内容并返回[-10, -5, 0, 5, 10],而不必手动写出整个范围。
【问题讨论】:
是的,有: 运算符。命令-10:5:11 将产生向量[-10, -5, 0, 5, 10];
【讨论】:
有两个相关的功能。冒号: 运算符,可以使用linspace 函数。使用的最佳函数取决于您要指定的内容。
例子:
x = -10:5:10; % Count by 5's from -10 to 10. (or "colon(-10, 5, 10)")
x = linspace(-10, 10, 5); % 5 even increments between -10 and 10
colon 运算符的结果将始终包含第一个参数和所需的间距,但通常不包含最后一个参数。 (例如x = -10:5:11)。
linspace 函数将始终包含所需的第一个和最后一个元素,但元素间距会有所不同。 (例如linspace(-10, 11, 5))。
【讨论】:
其他人提到了colon 运算符。您只需要注意一些差异。
在 Python 中,range 接受所有整数参数并返回一个整数列表。在 MATLAB 中,冒号运算符可以处理开始/停止以及步长中的浮点数。
我会说numpy.arange 更接近 MATLAB 的冒号运算符。
【讨论】: