对于符号矩阵(或者实际上只是任何类型的符号数组),有没有一种方法来表示简化操作,如max,min,sum等?元素级操作可以通过以下方式完成:
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, a[0, 1]) Max(1, a[0, 2])⎤
⎢ ⎥
⎢Max(1, a[1, 0]) Max(1, a[1, 1]) Max(1, a[1, 2])⎥
⎢ ⎥
⎣Max(1, a[2, 0]) Max(1, a[2, 1]) Max(1, a[2, 2])⎦现在,有没有办法在第一个轴上最大限度地减少这个操作?我想要as_explicit()的以下输出
⎡ ⎤
⎢Max(a[0, 0], a[1, 0], a[2, 0]) Max(a[0, 1], a[1, 1], a[2, 1]) Max(a[0, 2], a[1, 2], a[2, 2])⎥
⎣ ⎦发布于 2021-06-17 04:21:07
在查看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], a[0, 2])这与签名一致:Max(*args)
https://stackoverflow.com/questions/68008943
复制相似问题