如何解决sympy:评估前如何打印矩阵产品?
我有两个矩阵,例如#include <stdio.h>
int main (void)
{
int array[]={1,2,3,7};
int len=sizeof(array)/sizeof(array[0]);
for(int i=0;i!=len;i++)
{
printf("%i\n",array[i]);
}
}
,我想同时打印(以可读的方式)
-
a,b
,没有实际执行矩阵乘法 - 乘法的实际结果(由sympy执行)
有什么办法吗?
解决方法
您可以使用MatMul
创建未评估的符号乘积:
https://docs.sympy.org/latest/modules/matrices/expressions.html#sympy.matrices.expressions.MatMul
In [16]: from sympy import *
In [17]: A = Matrix([[1,2],[3,4]])
In [18]: B = Matrix([[5,6],[7,8]])
In [19]: product = MatMul(A,B)
In [20]: product
Out[20]:
⎡1 2⎤ ⎡5 6⎤
⎢ ⎥⋅⎢ ⎥
⎣3 4⎦ ⎣7 8⎦
In [21]: product.doit()
Out[21]:
⎡19 22⎤
⎢ ⎥
⎣43 50⎦
In [22]: Eq(product,product.doit())
Out[22]:
⎡1 2⎤ ⎡5 6⎤ ⎡19 22⎤
⎢ ⎥⋅⎢ ⎥ = ⎢ ⎥
⎣3 4⎦ ⎣7 8⎦ ⎣43 50⎦
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。