嵌套循环的数组中不支持的操作数类型

时间:2017-12-21 10:29:04

标签: python python-2.7 matplotlib

我正在尝试编写一个嵌套循环,以计算温度(te)与时间(t)的多个值,每个值都使用不同的时间步长(dt)。

dt_values = [0.05, 0.025, 0.1, 0.05, 0.001]

for j in dt_values:
    t = np.arange(0,100,[j])
    te = np.zeros(len(t))
    te[0] = te_init 
    dt = j
    def f(te):
        y = -r*(te - te_surr) # y is the derivative
        return y
    for i in range(1,len(t)):
        te[i] = te[i-1] + f(te[i-1])*[j]



plt.plot(t, te)

但是我收到以下错误消息:

  

t = np.arange(0,100,[j])

     

TypeError:/:' int'不支持的操作数类型和'列出'

那么,在创建t数组时我不可能像我一样使用列表吗?我不能使用,例如

对于范围内的j ...

因为我对dt的值没有均匀分开。所以,我想知道,有没有另一种方法来定义np.arange支持的dt_values?

1 个答案:

答案 0 :(得分:1)

step参数应该是int而不是列表。 将[j]更改为j
有关 numpy.arange

的更多信息
dt_values = [0.05, 0.025, 0.1, 0.05, 0.001]

for j in dt_values:
    t = np.arange(0,100,j)
    te = np.zeros(len(t))
    te[0] = te_init 
    dt = j
    def f(te):
        y = -r*(te - te_surr) # y is the derivative
        return y
    for i in range(1,len(t)):
        te[i] = te[i-1] + f(te[i-1])*[j]



plt.plot(t, te)