继续我的matrix multiplication question,我想在mma中以显式可见的形式显示以下表达式:
即使在我给a11,...,b11,...显式数字的情况下,我仍然希望它是未评估形式的(0 && 1)|||(1 && 1)。谁能帮忙吗?
最佳答案
我认为这不是一个好主意(重载内部函数和所有内容;并且&&是And而不是BitAnd,您想在上一个问题中使用它),但是您提出了要求并得到了它:
CircleTimes[a_?MatrixQ, b_?MatrixQ] :=
Inner[HoldForm[BitAnd[##]] &, a, b, HoldForm[BitOr[##]] &]
Unprotect[BitAnd];
Unprotect[BitOr];
BitAnd /: Format[BitAnd[a_, b_]] := a && b;
BitOr /: Format[BitOr[a_, b_]] := a || b;
Protect[BitAnd];
Protect[BitOr]
mat1 = Array[Subscript[a, #1, #2] &, {2, 2}];
mat2 = Array[Subscript[b, #1, #2] &, {2, 2}];
将操作定义为CircleTimes的好处是,您可以免费获得CircleTimes符号和运算符。
关于wolfram-mathematica - 在Mathematica中以清晰可见的形式显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5252999/