ncc198611 发表于 2009-5-17 17:34

求助(急):matlab编程

syms x;
for k=1:10, for l=1:10
    ak=(k-1/2)*pi; al=(l-1/2)*pi; num2str(ak);
    aa=strcat('(sinh((',num2str(ak),')*x).*sinh((',num2str(al),')*x))');
    bb=strcat('(sin((',num2str(al),')*x).*sinh((',num2str(ak),')*x))');
    pp=strcat('(',num2str(ak),').*(',num2str(al),').*((inline(aa,x))+(inline(bb,x)))')
    ss(k,l)=quadl(inline(pp),0,1)
end; end
请高手帮忙看一下有什么错误,帮改一下,如果把aa,bb这项直接带到pp中能出结果,因为像aa,bb这样的项有很多,而且在strcat('(    )')又不能分行,函数太长不便于打印。谢谢了。

[ 本帖最后由 ChaChing 于 2009-5-18 07:50 编辑 ]

wangjizhe 发表于 2009-5-17 22:12

回复 沙发 ncc198611 的帖子

你把你的错误贴上去嘛

ncc198611 发表于 2009-5-17 22:32

不好意思,运行结果如下,恳请赐教
pp =
(1.5708).*(1.5708).*((inline(aa,x))+(inline(bb,x)))
??? Error using ==> inline.feval
Not enough inputs to inline function.
Error in ==> quadl at 64
y = feval(f,x,varargin{:}); y = y(:).';

ChaChing 发表于 2009-5-18 11:45

试试
pp=strcat('(',num2str(ak),').*(',num2str(al),').*(',aa,'+',bb,')');

ncc198611 发表于 2009-5-18 20:30

恩,应该可以,谢谢 啊
页: [1]
查看完整版本: 求助(急):matlab编程