matlab中的meshgrid和生成网格是什么意思?

我试了下简单绘图,两个代码如下
theta=linspace(0,2*pi,100);fai=linspace(0,pi/2,100);
x=2.*sin(fai).*cos(theta);y=2.*sin(fai).*sin(theta);z=2.*cos(fai);
surf(x,y,z)
这样就有N个警报。改成
theta=linspace(0,2*pi,100);fai=linspace(0,pi/2,100);
[theta,fai]=meshgrid(theta,fai);
x=2.*sin(fai).*cos(theta);y=2.*sin(fai).*sin(theta);z=2.*cos(fai);
surf(x,y,z)
就OK了,书上说meshgrid是生成X-Y平面上的网格?搞不懂什么意思。。烦请各位大侠赐教。。
就是说你要画那种三维的图(就是z随着x和y变化的那种),要先把x和y向量变成矩阵才能画图。否则会报错。

meshgrid函数的作稿辩用是生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时, 往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y)。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分芦凯析以及数键哗缺值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
surf你可以这样想。
一张坐标纸,当你知道每一个坐标点的高度数据时,是不是就有一个地形的立体形状。

所以你罩隐的坐标x,必须是这个坐标纸里面所有点的横坐标,

一般这样弄:
theta=linspace(0,2*pi,100);fai=linspace(0,pi/2,100);
[t,f]=meshgrid(theta,fai); %这个是画坐标纸上运旅的点(当然旁闷凳这个是球坐标的)

x=2.*sin(f).*cos(t);y=2.*sin(f).*sin(t);z=2.*cos(f);

surf(x,y,z)
_问题描述:我试了下简单绘图,两个山弊橡代码如下
theta=linspace(0,2*pi,100);fai=linspace(0,pi/2,100);x=2.*sin
(fai).*cos(theta);y=2.*sin(fai).*sin(theta);z=2.*cos(fai);su
rf(x,y,z)这样就有N个警报。改成
theta=linspace(0,2*pi,100);fai=linspace(0,pi/2,100);[theta,f
ai]=meshgrid(theta,fai);x=2.*sin(fai).*cos(theta);y=2.*sin(f
ai).*sin(theta);z=2.*cos(fai);surf(x,y,z)就OK了,书上说
meshgrid是生成X-Y平面上的网格?搞不懂什么意思。。烦请各位大侠赐教。。答案1::
surf你可以这样想。一张坐标纸,当你知道每一卜谈个坐标点的高度数据时,是不是就有一个地形的立体形状。所以你的坐标x,必须是这个坐标纸里面所有点的横坐标,一般这样弄:
theta=linspace(0,2*pi,100);fai=linspace(0,pi/2,100);
[t,f]=meshgrid(theta,fai);
%这个是画坐标纸上的点(当然这个是球逗旁坐标的)
x=2.*sin(f).*cos(t);y=2.*sin(f).*sin(t);z=2.*cos(f);
surf(x,y,z)
提问者的评价:明白了~太感谢啦~
:::::::::::::::::::请参考以下相关问题::::::::::::::::::::
MATLAB中随机点的meshgrid
:::::::::::::::::::请参考以下相关问题::::::::::::::::::::
在matlab中meshgrid(-pi:0.1:pi)是什么意思?谢谢