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

问题描述 投票:0回答:1

我正在尝试编写一个嵌套循环,以计算温度(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'和'list'的不支持的操作数类型

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

对于范围内的j ...

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

python python-2.7 matplotlib
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.