我可以更改 Maxima/wxMaxima 显示转置运算符的方式吗?

Can I change the way Maxima/wxMaxima displays the transpose operator?

我可以更改 Maxima 显示转置运算符的方式吗?仅打印 "transpose" 的(默认)使用了很多 space 并使公式更难阅读。

当我输入:

transpose(M)

我希望它能打印类似
的内容 MT.

我通过 wxMaxima 使用 Maxima。

PS。 SO 上没有 wxMaxima 的标签。

这是一个很好的问题。不幸的是,Maxima 本身没有办法处理它,但如果可以进行一些 Lisp 编程,我们可以解决它。

(%i1) :lisp (defun dimension-transpose (expr stuff) (dimension-superscript `((mexpt) ,(cadr expr) |$t|) stuff))
DIMENSION-TRANSPOSE
(%i1) :lisp (setf (get '%transpose 'dimension) 'dimension-transpose)
DIMENSION-TRANSPOSE
(%i1) transpose(A.B);
                                     T    T
(%o1)                               B  . A

本质上我们只是定义一个显示函数,它构造一个 MEXPT(即“^”)表达式并显示它,然后告诉 Maxima 使用新函数来显示 transpose 表达式。

注意准确复制标点符号。注意区分反引号和单引号。

编辑:以上适用于命令行 Maxima。 wxMaxima大概有类似的程序,但我不知道。