hudu11111 发表于 2009-9-25 12:51

符号变量太长不能显示的问题

syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10;
a=x1+x3*cos(40*x10);
b=x2-x3*sin(40*x10);
e=2*atan((4*x4^2*(a^2+b^2)-(x4^2+a^2+b^2-x5^2)*(-2*x4*a)-(x4^2+a^2+b^2-x5^2)^(1/2)*2*x4*b)/((x4^2+a^2+b^2-x5^2)^(1/2)*(-2*x4*a)-(x4^2+a^2+b^2-x5^2)*2*x4*b));
c=a+x4*cos(e);
d=b+x4*sin(e);
m=a+x7*cos(e+x9);
n=b+x7*sin(e+x9);
q=asin((m+x8)/x6);
p=n+x6*cos(q);
f=diff(p,x10,2)
最后运行出来 结果太长显示 Output truncated.Text exceeds maximum line length of 25,000 characters for Command Window display.,该怎么办,我需要对这个f函数进行优化,所以要把他编写成m文件,但是内容不全,该怎么办

[ 本帖最后由 friendchj 于 2009-9-26 03:55 编辑 ]

maigicku 发表于 2009-9-25 14:56

如果想把F作为一个函数编成.m文件,最好不要运行,直接在主程序里优化试试。。。

hudu11111 发表于 2009-9-25 20:39

这样的话该怎么调用该函数呢?直接和调用m文件的方法一样是不行的吧?

friendchj 发表于 2009-9-26 03:55

回复 楼主 hudu11111 的帖子

提示只是说Command Window 里不能显示,应该可以用。再f=diff(p,x10,2)
后加“;”。提示应该会去掉。

hudu11111 发表于 2009-9-26 09:30

回复 地板 friendchj 的帖子

我想显示出来在复制到m文件里做objfun,照你说的加;不显示,我该怎么用它,直接x=fmincon(f,。。。。。)?出错不能用啊
谢谢

ChaChing 发表于 2009-9-26 12:40

试试输出至一档案!
但有点好奇及怀疑! 超过25,000文字即使可以复制成objfun, 後续可以继续执行吗?

friendchj 发表于 2009-9-26 12:43

回复 5楼 hudu11111 的帖子

我刚刚用2008a版本试了试,可以直接显示
>> subs(f,{x1,x2,x3,x4,x5,x6,x7,x8,x9,x10},{1,1,1,1,1,1,1,1,1,1})
ans =
-9.7247e+002 -5.1076e+003i

[ 本帖最后由 friendchj 于 2009-9-26 12:48 编辑 ]

hudu11111 发表于 2009-9-26 18:50

回复 6楼 ChaChing 的帖子

请问怎么输出至档案?谢谢!

ChaChing 发表于 2009-9-27 16:24

抱歉之前没时间试, 刚试了下! 我的版本是2006a,也是可以直接显示? 楼主什麽版本?

试试输出至档案
str=char(f); fid=fopen('Eqf.txt'); fprintf(fid,'%s',str); fclose(fid)

hudu11111 发表于 2009-9-27 20:18

回复 9楼 ChaChing 的帖子

我用的R2009a,谢谢,用你的办法输出了,非常感谢
页: [1]
查看完整版本: 符号变量太长不能显示的问题