matlab画的图 请问图中F=0时对应的角是多少 能求么
1个回答
展开全部
f(x,y)=0的图像直接用ezplot就行了,如
f=@(x,y)x.^2+y.^2-10;%定义函数f=x^2+y^2-10
ezplot(f)%画x^2+y^2-10=0的图像
axis equal;
f(x,y,z)=0的图像没有现成的函数可以画,但可以利用isosurface函数绘制三角网格图,注意不是我们用mesh或surf之类得到的表面图.下面是例子
f=@(x,y,z)x.^2+y.^2+z.^2-10;%定义函数f=x^2+y^2+z^2-10
[x,y,z]=meshgrid(linspace(-4,4,25));%设定格子大小和范围
val=f(x,y,z);
[p,v]=isosurface(x,y,z,val,0);%用isosurface得到函数f=0图形的点和面
patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');%用patch绘制三角网格图并设定色彩
view(3);grid on;axis equal
但其实如果你所要绘制的只是球面的话有专用函数sphere,它得到的是表面图.例如
[x,y,z]=sphere(25);
r=sqrt(10);
mesh(r*x,r*y,r*z)
axis equal
f=@(x,y)x.^2+y.^2-10;%定义函数f=x^2+y^2-10
ezplot(f)%画x^2+y^2-10=0的图像
axis equal;
f(x,y,z)=0的图像没有现成的函数可以画,但可以利用isosurface函数绘制三角网格图,注意不是我们用mesh或surf之类得到的表面图.下面是例子
f=@(x,y,z)x.^2+y.^2+z.^2-10;%定义函数f=x^2+y^2+z^2-10
[x,y,z]=meshgrid(linspace(-4,4,25));%设定格子大小和范围
val=f(x,y,z);
[p,v]=isosurface(x,y,z,val,0);%用isosurface得到函数f=0图形的点和面
patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');%用patch绘制三角网格图并设定色彩
view(3);grid on;axis equal
但其实如果你所要绘制的只是球面的话有专用函数sphere,它得到的是表面图.例如
[x,y,z]=sphere(25);
r=sqrt(10);
mesh(r*x,r*y,r*z)
axis equal
追问
f=@(x,y)x.^2+y.^2-10; 为什么要打@呀
linspace又是什么
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询