首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让MuPAD停止使用矩阵元素的占位符?

如何让MuPAD停止使用矩阵元素的占位符?
EN

Stack Overflow用户
提问于 2014-03-18 10:10:04
回答 1查看 331关注 0票数 2

我正在尝试计算MuPAD中的一些矩阵乘法。输出使用sigma作为矩阵元素的占位符,因为它们是长表达式(我假设这是原因)。有没有办法让MuPAD将各个矩阵元素显示为(在我的例子中)指数函数,而不管表达式的长度有多长?

下面是MuPAD使用sigma而不是实际指数函数的示例。我希望能够看到TotT^4的各个矩阵元素到底是什么。

我在MuPAD接口中执行的通向TotT^4的命令是:

代码语言:javascript
复制
T1 := matrix([[exp((J+B/2)/T),exp(-(J+B/6)/T)],[exp((-J+B/6)/T),exp((J-B/2)/T)]])
T2 := matrix([[exp((J1+B/2)/T),exp(-(J1+B/6)/T)],[exp((-J1+B/6)/T),exp((J1-B/2)/T)]])
T1d := linalg::transpose(T1)
TotT := T1d*T2
EN

回答 1

Stack Overflow用户

发布于 2014-03-19 02:57:59

您的变量的类可以通过type(totT)Dom::Matrix获得。您可能需要查看文档中的many methods of this class。据我所知,这个问题与该类print method的漂亮打印有关。其他类表现出相同的替换,因此它可能是重载的print的函数。我无法通过调整setPrintMaxSizePRETTYPRINTTEXTWIDTHprint的任何可选参数来更改行为。您仍然可以尝试自己,因为有许多排列。

我还尝试使用expand函数。expand(TotT,IgnoreAnalyticConstraints)几乎可以工作,尽管在某些情况下,如果扩展得太多,它可能会产生不良影响。调用simplify确实去掉了替换,但它也通过简化改变了一些条目的性质。它可能也不是这个问题的通用解决方案。

一种确实有效但很难看的方法是使用expr2text method,它以字符串形式返回结果:

代码语言:javascript
复制
expr2text(TotT)

它会返回

代码语言:javascript
复制
"matrix([[exp((B/6 - J)/T)*exp((B/6 - J1)/T) + exp((B/2 + J)/T)*exp((B/2 + J1)/T), ...
          exp(-(B/2 - J1)/T)*exp((B/6 - J)/T) + exp((B/2 + J)/T)*exp(-(B/6 + J1)/T)], ...
         [exp(-(B/2 - J)/T)*exp((B/6 - J1)/T) + exp((B/2 + J1)/T)*exp(-(B/6 + J)/T), ...
          exp(-(B/2 - J)/T)*exp(-(B/2 - J1)/T) + exp(-(B/6 + J)/T)*exp(-(B/6 + J1)/T)]])"

我认为这个问题是一个很好的问题,可以在Matlab Central上问,或者如果你有支持的许可证,可以提交service request

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22469140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档