matlab计算结果中特别长,matlab运算结果太长Output truncated. Text exceeds maximum line length o......
本帖最后由 liuyang2016 于 2016-4-25 20:24 编辑
matlab符号计算中得到的表达式太长,屏幕无法显示。
Output truncated. Text exceeds maximum line length of 25,000 characters for Command Window display.
请问如何才能让结果完全显示出来?我需要用这个解析表达式,以便于后面的赋值计算。我看论坛上面以前也有人遇到过,可能的解决方案有:1,用latex解决,showlatex,然后到latex中编辑一下。表示没有看懂。2,输出到txt 文件。好像是fopen fprintf fcolse可以导出到txt,看了半天还是没有搞明白。3,把运算的结果字符串化,假设符号运算的结果为
S = syms(……);
ss = char(S);
这样结果就以字符串形式保存在workspace里,这时候就可以点击查看了,还可以复制下来,存在txt文件中。
这三种方法我都试了一下,可能是我水平太低吧,还是没能解决问题。希望有大神能指点迷津,帮我解决这个问题,尽量详细一点啊:)
matlab程序如下(最后的l1,l2,l3表达式过长)
clear
syms L hc sigmaw sigmac w w0 h a a0 wt x ftmax b gf gfx P CMOD G delta M M1 Eq1 Phi Lamda l1 l2 l3 s W Pmax %定义符号变量
% h=203;a0=77.749;b=76;L=762;gf=0.14;ftmax=4.52;W=288; % B系列梁B1
w0=2*gf/ftmax; %w0为粘聚应力为零时的裂缝张开位移
sigmac=ftmax*(h-a-hc)/hc; %根据平截面假定,求得梁上边缘处混凝土的压应力sigmac与裂缝尖端极限抗拉强度ftmax的关系
w=(x-hc)*wt/(a-a0); %断裂过程区虚拟裂缝张开位移w沿界面高度的分布
sigmaw=ftmax*(w0-w)/w0; %使用单线性粘聚力模型求得的粘聚应力
Eq1=0.5*sigmac*b*(h-a-hc)-0.5*ftmax*b*hc-int(sigmaw*b,hc,hc+a-a0);
hc=solve(Eq1,hc); %求解hc.计算准确。求得hc的表达式,用a,wt,gf来表示。相当于消去了hc
w=(x-hc)*wt/(a-a0); %断裂过程区虚拟裂缝张开位移w沿界面高度的分布
sigmaw=ftmax*(w0-w)/w0; %使用单线性粘聚力模型求得的粘聚应力
gfx=int(sigmaw,x,0,w)*wt/(a-a0); %gfx是任意位置处的局部断裂能
G=int(b*gfx,hc,hc+a-a0); %双重积分求得整个截面的断裂能G
M=ftmax*b*(h-a-hc)^3/(3*hc)+(1/3)*ftmax*b*hc^2+int(sigmaw*b*x,x,hc,hc+a-a0);%开裂截面弯矩M表达式,很长,暂不列出
P=4*M/L-0.5*W; %p和M的关系式
M1=P*L*wt/(8*a-8*a0)-G; %根据几何关系求得delta和CMOD以及wt的关系式M1
Phi=M+Lamda*M1; %建立一个拉格朗日函数Phi
l1 =diff(Phi,a); %拉格朗日函数Phi对a求偏导数
l2 =diff(Phi,wt); %拉格朗日函数Phi对wt求偏导数
l3 =diff(Phi,Lamda); %拉格朗日函数Phi对Lamda求偏导数