微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AttributeError: 'list' 对象没有属性 'ndim'

如何解决AttributeError: 'list' 对象没有属性 'ndim'

我正在尝试使用框架和数组制作 3d 图。在这代码中,您可以看到我有一个需要求解的方程组,以便为​​我的点获得“Z”值。每次通过 for 循环时,我都会调用解决系统所需的 2 个值,这两个值最终是我的“X”和“Y”值。在解决系统问题后,我提取其中一个值并使用它来找到我的“Z”值。

运行代码给了我

AttributeError: 'list' object has no attribute 'ndim'

在线

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap = 'plasma')

此问题的修复方法是什么?

from pylab import *
from random import *
from mpl_toolkits import mplot3d
import pandas as pd
from scipy.optimize import fsolve

mdoth = 0.004916
Tinfhin = 334.75
cph = 1008
nsh = .598
hh= 86.68
Ash = .02
n=127
alpha = .00041427
rho = .002129
k=3.041
Le = .0025
Ae = .000001
re = rho * Le/Ae
Ke = k * Ae/Le
nsc = .674
hc = 87.68
Asc = .016
Tinfcin = 295.75
rL = re
mdotc = .004542
cpc = 1007

dframe = pd.read_csv("file name here")

plot(dframe['Sec'],dframe['TC (C)'],'b-')
#annotate(xy=[818,72.25],s='First Entry')
xlabel('Time (s)')
ylabel('Temperature (C)')
title("Exhaust")
show()

plot(dframe['Sec'],dframe['Amb (C)'],'r-')
xlabel('Time (s)')
ylabel('Temperature (C)')
title("Ambient")
show()

plot(dframe['Sec'],'b-',label = "Exhaust")
plot(dframe['Sec'],'r-',label = "Ambient")
xlabel('Time (s)')
ylabel('Temperature (C)')
legend()
show()

Tinfhin = dframe['TC (C)']
Tinfcin = dframe['Amb (C)']

X,Y = meshgrid(Tinfhin,Tinfcin)

powerArray = []

for index,row in dframe.iterrows():
    
    Tinfhin = row['TC (C)']
    Tinfcin = row['Amb (C)']
    
    def function(z):
        II = z[0]
        Qc = z[1]
        Qh = z[2]
        Tc = z[3]
        Th = z[4]
        Tinfcout = z[5]
        Tinfhout = z[6]
    
        F = np.empty((7))
        F[0] = mdoth * cph * (Tinfhin - Tinfhout) - Qh
        F[1] = nsh * hh * Ash * ((Tinfhin + Tinfhout)/2 - Th) - Qh
        F[2] = n * (alpha * II * Th - 1/2 * (II**2) * re + (Ke * (Th-Tc))) - Qh
        F[3] = n * (alpha * II * Tc + 1/2 * (II**2) * re + (Ke * (Th-Tc))) - Qc
        F[4] = nsc * hc * Asc * (Tc - (Tinfcin + Tinfcout)/2) - Qc
        F[5] = mdotc * cpc * (Tinfcin - Tinfcout) - Qc
        F[6] = (alpha * (Th - Tc))/(rL/n + re) - II
    
        return F

    guess = np.array([1,1,1])
    z = fsolve(function,guess)
    power = n * z[0]**2 * rL
    powerArray.append(power)
    
Z = powerArray

ax = axes(projection='3d')
ax.set_xlabel("TC")
ax.set_ylabel("Ambient")
ax.set_zlabel("Voltage")
ax.plot_surface(X,cmap = 'plasma')
ax.view_init(0,180)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。