如何创建具有给定增量的数字范围
问题内容:
我想知道列表中是否存在等效语句以执行以下操作。在MATLAB中,我将执行以下操作
fid = fopen('inc.txt','w')
init =1;inc = 5; final=51;
a = init:inc:final
l = length(a)
for i = 1:l
fprintf(fid,'%d\n',a(i));
end
fclose(fid);
简而言之,我有一个初始值,一个最终值和一个增量。我需要创建一个数组(我读到的内容等同于python中的列表)并打印到文件中。
问题答案:
在Python中,range(start, stop + 1, step)
可以像Matlab的start:step:stop
命令一样使用。与Matlab的功能,但是,range
只能当start
,step
和stop
都是整数。如果要使用可用于浮点值的并行函数,请尝试以下arange
命令numpy
:
import numpy as np
with open('numbers.txt', 'w') as handle:
for n in np.arange(1, 5, 0.1):
handle.write('{}\n'.format(n))
请记住,不同于MATLAB,range
并且np.arange
都希望他们的论点的顺序start
,stop
话step
。还要记住的是,不同于Matlab的语法,range
并且np.arange
都停止只要电流值大于
或等于 停止值。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html