このプログラムを実行すると、「TypeError:長さ1の配列のみをPythonスカラーに変換できます。 x1変数が割り当てられている9行目に移動します。"length-1配列のみをPythonスカラーに変換できます" - 浮動小数点変換機能付きエラー
私はこの文脈で意味するものはここでは無知です。以前の割り当てのために非常によく似たコードで作業しましたが、すべて正常に機能しました。私は、関数の引数としてベクトルを取り込み、すべての値を同時に計算しました。
注:フローティングを削除した後、正常に動作しているように見えますが、理由はわかりません。誰でも説明できますか? (がを浮かぶよう)
import matplotlib.pyplot as plt
import numpy as np
g = 9.78
p = 1000
h = 50
s = 7.9 * 10**-2
def water_wave_speed(l):
x1 = float(g * l/(2 * np.pi))
x2 = 1 + s * float((4 * np.pi**2)/(p * g * l**2))
x3 = float((2 * np.pi * h)/l)
c = np.sqrt(x1 * x2 * np.tanh(x3))
return c
l_values = np.linspace(0.001, 0.1, 10)
c_values = water_wave_speed(l_values)
plt.plot(l_values, c_values)
plt.show()
'float'の代わりに' np.float'を使います。それは役に立ちますか? –
@AndrasDeak残念ながら..同じエラーが発生していません。 – SudokuNinja
@AndrasDeak 'np.float == float' –