matlab中隐函数的画图,求高人改改程序,运行出图形

程序如下:自己定义了一个函数 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))

可适应各种版本。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-06
%改下下面这句看看
plot(x,eval(y))
相似回答