如何创建具有给定增量的数字范围


问题内容

我想知道列表中是否存在等效语句以执行以下操作。在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只能当startstepstop都是整数。如果要使用可用于浮点值的并行函数,请尝试以下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都希望他们的论点的顺序startstopstep。还要记住的是,不同于Matlab的语法,range并且np.arange都停止只要电流值大于
或等于 停止值。

http://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html