matlab disp fprinr,matlab如何使输出结果更美观(symdisp函数——pretty函数升级版)

matlab中有些计算结果比较长,直接查看有些困难,下面介绍pretty和symdisp函数优化输出结果,使结果更为直观。

演示示例1

有一个计算结果如下:

>> f1

f1 =

y^5 + (- w - y0)*y^4 + 1800*y^3 + (1498200*w - 1800*y0)*y^2 + (3600*w*y0 + 810000)*y - 1350810000*w - 810000*y0

1. 使用pretty函数美化输出

>> pretty(f1)

5 4 3 2

y + (- w - y0) y + 1800 y + (1498200 w - 1800 y0) y + (3600 w y0 + 810000) y - 1350810000 w - 810000 y0

该函数可使输出更接近数学格式。

2. 使用symdisp函数美化输出

symdisp(f1);

c975a38ff1f5a67d6adec37f880c0aef.png

演示示例2

有一个计算结果如下:

>> F(3)

ans =

(y^2*((w - (2*w*y^2)/(y^2 + 900))/(y - y0) + 1))/60 - (25015*(w - (2*w*y^2)/(y^2 + 900)))/(y - y0) - (60*w*y)/(y^2 + 900) + 15

1. 使用pretty函数美化输出

>> pretty(F(3))

/ 2 \

| 2 w y |

| w - -------- | / 2 \

| 2 | | 2 w y |

2 | y + 900 | | w - -------- | 25015

y | ------------ + 1 | | 2 |

\ y - y0 / \ y + 900 / 60 w y

----------------------- - ---------------------- - -------- + 15

60 y - y0 2

y + 900

该函数可使输出更接近数学格式。

2. 使用symdisp函数美化输出

symdisp(F(3));

e805f70f84970c0a7fc09b4a45ca6cd3.png

演示示例3

有一个计算结果如下:

>> n

n =

[ -(2*x*(2*r^2 - 4*x^2 + 4*y*(w - y) - 1800))/(4*x^2 + 4*y^2 + 3600), -(2*y*(2*r^2 - 4*x^2 + 4*y*(w - y) - 1800))/(4*x^2 + 4*y^2 + 3600), (60*(2*r^2 - 4*x^2 + 4*y*(w - y) - 1800))/(4*x^2 + 4*y^2 + 3600)]

1. 使用pretty函数美化输出

>> pretty(n)

/ x #1 2 y #1 2 60 #1 \

| - ------------------, - ------------------, ------------------ |

| 2 2 2 2 2 2 |

\ 4 x + 4 y + 3600 4 x + 4 y + 3600 4 x + 4 y + 3600 /

where

2 2

#1 == 2 r - 4 x + 4 y (w - y) - 1800

该函数可使输出更接近数学格式。

2. 使用symdisp函数美化输出

symdisp(n);

4adac50a697872d480c322ca730e05d7.png

总结

经过以上实验,发现symdisp函数可将输出结果转化为更易读的格式,且效果较好

附录:symdisp函数源码

function h=symdisp(s)

%//SYMDISP Display a symbolic expression in human readable form.

%// symdisplay(S) displays the symbolic expression S in a small figure window,

%// using standard mathematical notation.

%//

%// Examples:

%// syms x t positive

%// f=taylor(cos(x));

%// symdisp(f)

%// f=int(exp(-t)*t^(x-1),t,0,inf);

%// symdisp(f)

%//

%// Required toolbox: Symbolic Math

%//

%// See also SYMBOLIC PRETTY.

if ~isa(s,'sym')

s=sym(s);

%error('输入参数必须是sym类型,请使用 sym() 将你的结果转化为sym类型.')

end

S=['$',latex(s),'$'];

S=strrep(S,'&','& \quad');

S=strrep(S,'{\it','\mathrm{');

h=msgbox(S,'字符的数学展示形式');

h1=get(h,'children');

h2=h1(1);

h3=get(h2,'children');

if isempty(h3)

h2=h1(2); h3=get(h2,'children');

end

set(h3,'visible','off')

set(h3,'interpreter','latex')

set(h3,'string',S)

set(h3,'fontsize',20)

w=get(h3,'extent');

W=get(h,'position');

W(3)=max(w(3)+10,125);

W(4)=w(4)+40;

set(h,'position',W)

h4=h1(2);

if ~strcmp(get(h4,'tag'),'OKButton'), h4=h1(1); end

o=get(h4,'position');

o(1)=(W(3)-o(3))/2;

set(h4,'position',o)

set(h3,'visible','on')

set(h,'color','w');

此函数源文件可前往下面网址下载:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值