PDA

查看完整版本 : [MATLAB毕业设计] 求助(急):matlab编程


ncc198611
2009-05-17, 17:41
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('( )')又不能分行,函数太长不便于打印。谢谢了。

ncc198611
2009-05-17, 21:42
有人知道吗,谢谢大家,真的很急。

ncc198611
2009-05-17, 22:34
运行结果如下,谢谢赐教
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(:).';

TTT_IOU
2009-05-17, 22:46
不太理解你的意思,看下程序可否:
syms x
format long e
ss=zeros(10,10);
for k=1:3
for l=1:3
ak=(k-1/2)*pi;
al=(l-1/2)*pi;
aa=sinh(ak*x)*sinh(al*x);
bb=sin(al*x)*sinh(ak*x);
pp=ak*al*(aa+bb);
ss(k,l)=quadl(inline(pp),0,1);
end
end
不过,上界1应小点,不然会出现warning!

ncc198611
2009-05-18, 20:35
非常感谢你,我试了一下,应该可以。