[英]Creat symbol matrix using numpy, sympy in function?
My code: 我的代码:
def crearMatrix(name,shape=(2,2)):
X = np.empty(shape)
for i in range(shape[0]): #X.shape[1]
for j in range(shape[1]):
X[i][j] = Symbol("a"+'_{'+str(i*10+j+11)+'}')
return X
Error message: 错误信息:
TypeError: can't convert expression to float TypeError:无法将表达式转换为浮点型
You probably don't want numpy
matrix'es to store sympy
's symbols. 您可能不希望numpy
矩阵存储sympy
的符号。 Better use sympy.Matrix
for this. sympy.Matrix
,最好使用sympy.Matrix
。
import sympy
def crearMatrix(name,shape=(2,2)):
X = []
for i in range(shape[0]):
row = []
for j in range(shape[1]):
row.append(sympy.Symbol("a"+'_{'+str(i*10+j+11)+'}'))
X.append(row)
return sympy.Matrix(X)
A = crearMatrix("a")
print(sympy.latex(A**2))
# \left[\begin{matrix}a_{11}^{2} + a_{12} a_{21} & a_{11} a_{12} + a_{12} a_{22}\\a_{11} a_{21} + a_{21} a_{22} & a_{12} a_{21} + a_{22}^{2}\end{matrix}\right]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.