【问题标题】:IndexError: index 1 is out of bounds for axis 0 with size 1. and doesn't runIndexError:索引 1 超出轴 0 的范围,大小为 1。并且不运行
【发布时间】:2017-10-24 16:12:50
【问题描述】:

我的代码是这样的:

r=8.31
tem=np.linspace(425,450,10)

k3=9e3*np.exp(-101000/(r*tem[0]))
k5=5e10*np.exp(-113000/(r*tem[0]))

Cb0=0.0

Cd0=0.0


def eulerd(cb,cd,h,k3,k5):
    valor4=cd+h*(k3*cb-k5*cd)
    return valor4


t=np.linspace(0,2000,20)
h=100

cb=np.array([]) 
cb=np.append(cb,Cb0)
cd=np.array([]) 
cd=np.append(cd,Cd0)

for i in range(t.shape[0]-1):

    valorcdnuevo=eulerd(cb[i],cd[i],h,k3,k5)
    cd=np.append(cd,valorcdnuevo)

plt.plot(t,cd)

当我执行它时,Python 说:

文件“C:/Users/2014/Desktop/ddsdsa.py”,第 45 行,在 valorcdnuevo=eulerd(cb[i],cd[i],h,k3,k5)

IndexError:索引 1 超出轴 0 的范围,大小为 1

【问题讨论】:

  • 欢迎来到 Stack Overflow!请通过添加适当的标签让我们知道这是哪种编程语言。

标签: python indexing


【解决方案1】:

您正在 0 和 t.shape[0] -1 = 19 之间的范围内创建循环:

Cb 在 shape[0] 上的长度为 1,因此当我达到值 1 时会导致索引越界异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2021-11-18
    • 2021-05-16
    相关资源
    最近更新 更多