请教MATLAB绘制三维曲面图的问题

[X,Y]=meshgrid(-3:.125:3);
Z=peaks(X,Y);
meshc(X,Y,Z);
axis([-3 3 -3 3 -10 5])
以上MATLAB代码运行后,将生成三维曲面网格图。请问:该程序第1行的(-3:.125:3)以及第4行axis后的各符号、六个数据都代表什么意思?
比如,该程序第1行的-3是什么?-3后面的冒号是比值还是其它什么含义?还有 .125不会是零点一二五的意思吧?等等。
我自学用的教材是胡晓冬、董辰辉编著的《MATLAB从入门到精通》,上例引自该书204页的Ex_7_28.m

这个问题已经好几年了,我也几年没在知道答题,看到这个问题又有了答题冲动。。。。

    这4行代码,第一行生成了网格数据,赋值给了X、Y两个变量。-3:.125:3表示范围为-3到3,间隔0.125;

    第二行用了一个内置快捷函数peaks(),这个函数的作用是根据输入的X、Y得到Z的数据,得到有峰有谷这样的一个图形。直接运行peaks(50)就能画出一个图;

    第三行meshc()是一个绘图函数,比mesh()多了一个等高线。将前面得到的X、Y、Z三个参数传入就得到了你附的图;

    第四行设置坐标轴范围,6个数分别是x轴、y轴、z轴的取值范围。去掉这行也能画出图。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-24
三维曲面实际是张网格,如下:

也就是说,如果你X、Y是向量,则Z必须是矩阵,Z中每个元素就是网格的交点。如果X向量长度为a,Y向量长度为b,则Z应该是a*b矩阵,这样才能对应起来。
matlab中mesh或者surf函数即是如此,最常用的一个形式,mesh(X, Y, Z),其中X为m维向量,Y为n维向量,则Z为n*m矩阵(注意与上段所说不同,类似转置了)。网格交点坐标为[X(j),Y(i),Z(i,j)].
你给的数据,X、Y、Z是长度相等的向量,只能画曲线。如下 :

代码为:
plot3(x, y, z);grid on;label('x');label('y');label('z');
打字不易,如满意,望采纳。追问

你回答的不对题。
该程序运行后,已经生成peaks三维网格图了,你还plot?

第2个回答  2021-02-16

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!

相似回答