matlab绘制图形

来源:互联网 发布:新浪短网址api java 编辑:程序博客网 时间:2024/06/07 10:52


 

ezplot('x.^2 + sin(y)');

绘制的是二元隐函数的函数图像,函数表达式是 x.^2+ sin(y) = 0,只需要写表达式即可,不用写出表达式然后等于0

 

ezmesh('exp(- x.^2 - y.^2)');

绘制的是z = exp(- x.^2 - y.^2)的网格函数图像

ezsurf('exp(- x.^2 - y.^2)');

绘制的是z = exp(- x.^2 - y.^2)的片函数图像

ezmeshezsurf绘制的是三维图像c此外还有ezmeshcezsurfc带有等高线,只用写出表达式即可,不用写z = 表达式的形式,以上都是书写表达式要加单引号

此外还可以用isosurface函数来绘制隐函数

[x,y,z]=meshgrid(-2:0.1:2);

isosurface(exp(- x.^2 - y.^2)-z,0)

或者

[x,y,z]=meshgrid(-2:0.1:2);

isosurface(x,y,z,exp(- x.^2 - y.^2)-z,0)

 

也属于隐函数绘图的一种吧,绘制出的是z = exp(-x.^2 - y.^2)-z的图像

 

 

figure(1);

[x,y,z]=meshgrid(-1:0.1:1);

isosurface(x,y,z,x.^2+y.^2+z.^2-1)

axis equal

figure(2);

[x,y,z]=meshgrid(linspace(-3,3));

val =(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3;

isosurface(x,y,z,val,0);

axis equal;

注意isosurface函数参数依次是xyzval、以及等值面的值

另外这个函数还有一个好处是,可以得到等值面的顶点和面,可以直接调用patch画出来

fv =isosurface(x,y,z,p,0);

patch(fv)

这一点很好,可以将得到的顶点和面保存到文件,用opengl画出来,可以更好的渲染图形

Isosurface函数的等值面的值对绘制出的函数图像影响很大,

[x,y,z]=meshgrid(-1:0.1:1);

isosurface(x,y,z,x.^2+y.^2+z.^2-1,0)

axis equal

[x,y,z]=meshgrid(-1:0.1:1);

isosurface(x,y,z,x.^2+y.^2+z.^2-1,1)

axis equal

等值面的值分别是01

 

0 0
原创粉丝点击