新手,在演示书上例题时,出现的问题。lambda和fseries是M文件,工作台调用两个函数过程中出现错误,请那位牛人给指正一下,不胜感激。
lambda.m
function y=lambda(x)
%y=lambda(x)generates a triangular signal.
y=(x+1).*(x>-1&x<0)+(x==0)+(-x+1).*(x>0&x<1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
fseries.m
function xx=fseries(myfunfcn,a,b,n,tol,p1,p2,p3)
%Fseries 返回傅里叶序列系数
% function=在m-file中给出的函数。
% 它依赖于3个参数
% p1、p2和p3。函数是定在从a'到b'的一个周期内。
% xx=长度为n+1的傅里叶序列系数的向量,xx0,xx1,……xxn。
%p1,p2,p3=funfcn的参数。
%tol=差错级别。
j=sqrt(-1);
args=[];
for nn=1:nargin-5
    args=[args,',p',int2str(nn)];
end
args=[args,')'];
t=b-a;
xx(1)=eval(['1/(',num2str(t),').*quad(myfunfcn,a,b,tol,[]',args]);
for i=1:n
    newfun=['exp(-j*2*pi*x*(',int2str(i),')/(',num2str(t),')).*',myfunfcn];
    xx(i+1)=eval(['1/(',num2str(t),').*quad(newfun,a,b,tol,[]',args]);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
echo on
>> myfunction='lambda'

myfunction =

lambda

>> a=-1.3;
>> b=3.3;
>> n=24;
>> tol=0.1;
>> xx=fseries(myfunction,a,b,n,tol)
[color=800000]??? Error using ==> inline.subsref
Not enough inputs to inline function.

Error in ==> quad at 63
y = f(x, varargin{:});

Error in ==> fseries at 19
    xx(i+1)=eval(['1/(',num2str(t),').*quad(newfun,a,b,tol,[]',args]);[/color]