gpt4 book ai didi

python - 'float' 对象没有属性 '__getitem__' Python 错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:15 26 4
gpt4 key购买 nike

当我运行代码时

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

# Initial conditions

def f_func(eta,y_in):
y_out = np.zeros(3)
y_out[0] = y_in[1]
y_out[1] = y_in[2]
y_out[2] = -y_in[0]*y_in[2]/2
return y_out

eta = np.linspace(0,8,100)
X0 = [0,0,0.33206]
X = odeint(f_func,X0,eta)

我得到了错误

 'float' object has no attribute '__getitem__'

当我运行以下 MATLAB 程序时,一切正常。 MATLAB 函数 ode45 相当于 Python 的 odeint。

主程序:

clear

global beta
beta = 1;

initial_value = [0,0,1.2322];
eta = linspace(0,4,100)
[x_out, y_out] = ode45(@falkner_skan,eta,initial_value);

plot(x_out,y_out(:,2))

falkner_skan 函数:

function y_out = falkner_skan(x,y_in)

global beta

y_out(1,1) = y_in(2);
y_out(2,1) = y_in(3);
y_out(3,1) = -y_in(1)*y_in(3) - beta*(1-y_in(2)^2);

end

Thisthisthis线程似乎没有给我任何指导。

最佳答案

似乎 y_in 不是列表而是浮点值。出现此错误是因为您正尝试使用不支持它的对象的 obj[x] 获取项目。

查看 documentation for odeint它说输入函数应该有两个参数,第一个是你的数据对象,第二个应该是一个 float 。因此,您对 f_func 的实现是错误的。

关于python - 'float' 对象没有属性 '__getitem__' Python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25950113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com