matlab疑问

f='(x^2+x*y+x*z)*exp(-z)+z^2*y*x+sin(x+y+z^2)';
ezimplot3(f,[-10 10])
Attempt to execute SCRIPT ezimplot3 as a function:
C:\Program Files (x86)\MATLAB\R2012a\ezimplot3.m
求大神回答,该怎么解决这个问题。。。在线等,急、、、、

1、ezimplot3不是MATLAB自带函数,比较大可能是Gustavo Morales写的一个用于三维隐函数绘图的M文件,在mathworks官网有下载(完整链接度娘不让发,前面去掉了官网域名): /matlabcentral/fileexchange/23623-ezimplot3--implicit-3d-functions-plotter,但我目前暂时打不开这个地址,不知道其原始写法是函数还是脚本。之前在别的地方见过函数版本,可能是在此基础上改写的。

 

2、从题主的报错信息看,很显然,题主手上的版本是脚本。

 

3、题主可参考MATLAB中文论坛的一个帖子“MATLAB绘制3D隐函数曲面的方法总结”(/thread-264471-1-1.html),以便对这种方法的原理有所了解。我也借用该帖子的部分代码,改写了一个简单的函数,供题主使用(精力所限,没有考虑太多通用性,只保证可以适用题主目前的调用)。

 

参考代码:

function ezimplot3(f, lim)
N = 50;
f = inline(vectorize(sym(f)));
[x,y,z] = meshgrid(linspace(lim(1),lim(2),N));
v = f(x,y,z);
h = patch(isosurface(x,y,z,v,0)); 
isonormals(x,y,z,v,h)              
set(h,'FaceColor','r','EdgeColor','none');
xlabel('x');ylabel('y');zlabel('z'); 
alpha(1)   
grid on; view([1,1,1]);
axis equal; 
camlight; lighting gouraud

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-08
ezimplot3.m不是matlab自带的函数,可能是你自写的。matlab带的是ezplot3.m,用法不一样。