pylotを使用して単純な振り子をシミュレートしようとしています。そのために、クラスPendulumを作成しましたが、メソッドの1つで、同じエラーが発生し続けます。
def __init__(self, L = 1, M = 1, G = 9.8, origin = (0, 0), init = [60, 0]):
self.init_state = np.array(init, dtype = 'float')
self.params = (L, M, G)
self.origin = origin
self.time = 0
self.state = self.init_state * (np.pi/180.)
def dstate_dt(self, state, t):
"""compute the derivative of the given state"""
(L, M, G) = self.params
dydx = np.zero_lie(state)
dydx[0] = state[1]
dydx[1] = -(G/L)*np.sin(state[0])
return dydx
エラーコードは次のとおりです。
ファイル "C:\ Users \ Lucas \ Anaconda3 \ envs \ Spyder \ lib \ site-packages \ numpy \ core \ fromnumeric.py"、47行目、_wrapit result = getattr(asarray(obj)、method)(* args、 ** kwds)
TypeError:整数スカラー配列のみをスカラーインデックスに変換できます
参照された行に入ると、「fromnumeric.pi」というフォルダーで、指定された関数は次のようになります。
def _wrapit(obj, method, *args, **kwds):
try:
wrap = obj.__array_wrap__
except AttributeError:
wrap = None
result = getattr(asarray(obj), method)(*args, **kwds)
if wrap:
if not isinstance(result, mu.ndarray):
result = asarray(result)
result = wrap(result)
return result
このエラーの原因とその修正方法を教えてください。完全なトレースバックは次のとおりです。
ファイル "C:\ Users \ Lucas \ Desktop \ Estudos \ Python \ Simple Pendulum.py"、86行目、animate(0)
ファイル "C:\ Users \ Lucas \ Desktop \ Estudos \ Python \ Simple Pendulum.py"、行80、アニメーションline.set_data(pendulum.position())
ファイル "C:\ Users \ Lucas \ Desktop \ Estudos \ Python \ Simple Pendulum.py"、27行目、位置x = np.cumsum(self.origin [0]、L * np.sin(self.state [0] ]))
ファイル "< array_function internals>"、6行目、cumsum
ファイル "C:\ Users \ Lucas \ Anaconda3 \ envs \ Spyder \ lib \ site-packages \ numpy \ core \ fromnumeric.py"、2423行目、cumsum return _wrapfunc(a、 'cumsum'、axis = axis、dtype = dtype、out = out)
ファイル "C:\ Users \ Lucas \ Anaconda3 \ envs \ Spyder \ lib \ site-packages \ numpy \ core \ fromnumeric.py"、58行目、_wrapfunc return _wrapit(obj、method、* args、** kwds)
ファイル "C:\ Users \ Lucas \ Anaconda3 \ envs \ Spyder \ lib \ site-packages \ numpy \ core \ fromnumeric.py"、47行目、_wrapit result = getattr(asarray(obj)、method)(* args、 ** kwds)
TypeError:整数スカラー配列のみをスカラーインデックスに変換できます
トレースバックは、エラーがこの行で発生していることを示しています(コードから)
File "C:\Users\Lucas\Desktop\Estudos\Python\Simple Pendulum.py", line 27, in
position x = np.cumsum(self.origin[0], L*np.sin(self.state[0]))
私はcumsum
あなたのコードサンプルでその使用を見ていません!投稿されたメソッドは、トレースバックにまったく表示されません。
cumsum
2つの引数を渡します
self.origin[0]
L*np.sin(self.state[0]
ただし、時間をかけてドキュメントを確認すると、cumsum
次のように表示されます。
numpy.cumsum(a, axis=None, dtype=None, out=None)[source]
1つの配列引数を取りますa
。2番目の引数はですaxis
。これはスカラー、単一の数値のみにすることができます。それはエラーが不平を言っていることです!
cumsum
電話で何を意図しているのかわからないため、修正を提案することはできません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加