如何解决MatrixSymbol 上的符号归约
有没有一种方法可以表达符号矩阵(或任何类型的符号数组)的缩减操作,如最大值、最小值、总和等?元素级操作可以通过以下方式完成:
a = MatrixSymbol('a',3,3)
a.applyfunc(lambda x: Max(x,1))
输出:
(d ↦ Max(1,_d))˳(a)
(我有点困惑上面的表达式在数学意义上是什么意思,d
和 _d
表示什么?)
当然,as_explicit()
会返回:
⎡Max(1,a[0,0]) Max(1,1]) Max(1,2])⎤
⎢ ⎥
⎢Max(1,a[1,2])⎥
⎢ ⎥
⎣Max(1,a[2,2])⎦
现在,有没有办法在第一个轴上进行此操作以最大程度地减少?我想要 as_explicit()
的这个输出:
⎡ ⎤
⎢Max(a[0,0],0]) Max(a[0,1],1]) Max(a[0,2],2])⎥
⎣ ⎦
解决方法
在查看 matrices
文档和进行实验之间,我想出了以下内容:
In [213]: a = MatrixSymbol('a',3,3)
In [214]: a
Out[214]: a
In [215]: M = Matrix(a)
In [216]: M
Out[216]:
⎡a₀₀ a₀₁ a₀₂⎤
⎢ ⎥
⎢a₁₀ a₁₁ a₁₂⎥
⎢ ⎥
⎣a₂₀ a₂₁ a₂₂⎦
In [217]: M.row(0)
Out[217]: [a₀₀ a₀₁ a₀₂]
In [218]: Max(*M.row(0))
Out[218]: Max(a[0,0],a[0,1],2])
这与签名一致:Max(*args)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。