前提・実現したいこと
pythonでsympyで定義した文字を行列(2×2)に追加するプログラムを作っています.最終的な形は,以下のようになってほしいのですが,
[[8φ 8φ]
[8φ 8φ]]
代入する行列に最初からsympyで定義した文字を入れておけば,エラーせず動くのですが(プログラム1),
代入する行列にsympyで定義した文字を入れなければエラーが発生します.(プログラム2)
発生している問題・エラーメッセージ
C:\Users\NA\Desktop\q>python sample.py <class 'numpy.ndarray'> Traceback (most recent call last): File "sample.py", line 25, in <module> C[i][j] = C[i][j] + φ File "C:\Users\NA\AppData\Local\Programs\Python\Python38\lib\site-packages\sympy\core\expr.py", line 295, in __int__ raise TypeError("can't convert symbols to int") TypeError: can't convert symbols to int
該当のソースコード
プログラム1
python
1from sympy import * 2import numpy as np 3 4#φ 5φ = Symbol('φ') 6 7#代入する配列 8C = np.array([[φ,0], 9 [0,0]]) 10for i in range(2): 11 for j in range(2): 12 for k in range(8): 13 C[i][j] = C[i][j] + φ 14 #print(C[i][j]) 15print(C) 16 17#実行結果 18[[9*φ 8*φ] 19 [8*φ 8*φ]]
プログラム2
python
1from sympy import * 2import numpy as np 3 4#φ 5φ = Symbol('φ') 6 7#代入する配列 8C = np.array([[0,0], 9 [0,0]]) 10for i in range(2): 11 for j in range(2): 12 for k in range(8): 13 C[i][j] = C[i][j] + φ 14 #print(C[i][j]) 15print(C)
試したこと
代入する二次元配列の型が違うのかと思い両方のプログラムで型を調べましたが,両方とも<class 'numpy.ndarray'>で違いはありませんでした.
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。