我的主要目標是打印出一個變量的值在雙精度型for loop
和if-statement
之下,但是我傾向於得到一個誤差IndexError: invalid index to scalar variable.
這裏我的代碼IndexError:對於雙精度變量的無效索引以及if'for'語句
import numpy as np
nR = 133
nP = 255
Pmin = 0.09
Pmax = 20.0
dTime = 0.005
g = np.zeros((nR+1, nP+1), dtype=np.float64)
E01 = np.zeros(nR+1)
LnP = np.zeros(nP+1)
n = nR - 1
l = nP - 1
LnPmax = np.log(Pmax)
LnPmin = np.log(Pmin)
dLnP = (LnPmax - LnPmin)/(l-1)
odt = 1/dTime
for i in range(1, n):
T1 = E01[i]*dTime
for k in range(1, l):
LnPa = T1 + LnP[k]
ka = int((LnPa - LnPmin)/dLnP + 1)
if LnPa <= LnPmin:
ha = 0.0
elif LnPa >= LnPmax:
ha = 0.0
else:
ha = g[i][ka] + (g[i][ka+1] - g[i][ka])*(LnPa - LnPa[ka])/dLnP
print ha
每當我試圖print ha
我得到一個錯誤IndexError: invalid index to scalar variable
,我擡起頭,其他的解決方案上stackoverflow
和google
但它是無濟於事也許有人可以幫助我,我會感謝:)
您發佈的代碼有不好的縮進 - 'for範圍(1,n):'後面的行應縮進以使它們成爲for循環的一部分。糾正你的縮進,然後回到我們身邊。 –
沒錯,縮進似乎是一個問題,列表/數組「LnP」未定義「第24行」。 –
我已經修好了縮進,所以現在應該沒問題@RoryDaulton, – Tonikami04