程序如下:自己定义了一个函数 myfilter.mfunction y = myfilter(xi)syms w;fun = int((sin(w))^2/(1-xi*abs(sin(w))),w,0,pi);fenzi=sqrt(2/pi)*fun;fenmu = sqrt(int(sin(w)^2/(xi*abs(sin(w)) - 1)^2,w,0,pi));y = fenzi/fenmu;end运行:clear,clcfor i=1:100x(i) = i.*0.01 y(i) = myfilter(x(i))endplot(x,y)在matlab2007里面运行结果是??? Error using ==> reshapeTo RESHAPE the number of elements must not change.Error in ==> sym.maple at 94 result = reshape(result,size(varargin{3}));Error in ==> sym.abs at 11 Y = maple('map','abs',X1);Error in ==> myfilter at 3fun = int((sin(w))^2/(1-xi*abs(sin(w))),w,0,pi);Error in ==> PF at 4y(i) = myfilter(x(i))
楼主用的是什么MATLAB版本?
我查了2007b和早期的6.5版,maple函数中都没有发现调用reshape的地方:
edit sym/maple
另外,最后一句绘图是有问题的。楼上建议改成
plot(x,eval(y))这种改法在有的版本可行,但在有的版本上会出错(例如6.5版)。建议改成
plot(x,double(y))可适应各种版本。