简体   繁体   English

在函数中使用numpy,sympy创建符号矩阵?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM