matlab绘制三维图形的步骤_matlab绘制三维图形的步骤

matlab绘制三维图形的步骤_matlab绘制三维图形的步骤surf xx yy zz surfc xx yy zz mesh xx yy zz meshc xx yy zz meshz xx yy zz waterfall xx yy zz plot3 xx yy zz 其中值得说明的是如何构造出对应的数据出来 xx yy zz 出来 下面通过一段标准的代码段进行展示如何构造出相应的数据 x 1 0 1 1

surf(xx,yy,zz);

surfc(xx,yy,zz);

mesh(xx,yy,zz);

meshc(xx,yy,zz);

meshz(xx,yy,zz);

waterfall(xx,yy,zz);

plot3(xx,yy,zz);

其中值得说明的是如何构造出对应的数据出来(xx, yy, zz)出来。下面通过一段标准的代码段进行展示如何构造出相应的数据。

x=-1:0.1:1;
y=-1:0.1:1;
[xx,yy]=meshgrid(x,y);
zz=xx.*exp(-xx.^2-yy.^2);
surf(xx,yy,zz);

其中meshgrid的作用就是生成网格(矩阵)数据xx,yy。观察xx,yy的数据为:


从图中可以看到实际上xx是将x复制了y的长度份,也就是将二维平面(x,y)按照x, y设定的步长分割成网络,自然对应的zz也应该是对应有网格x,y的各自长度的乘积个,如下图所示:


最后上段代码绘制出来的图像为:


其中还有一个值得说明的是plot3函数与plot函数用法类似,同样的按照类似mesh等的构造数据的方法,如果仅仅绘制在mesh图像中的某些数据点,就可以采用plot3函数实现。比如下段代码就可以实现绘制点,并且连线的功能:

x0 = 0; y0 = 0; z0 = 0;
plot3(x0,y0,z0,'*k','linewidth',2,'markersize',10);
plot3(indexcol,indexrow,z0,'*k','linewidth',2,'markersize',10);
plot3(indexcol,indexrow,maxScore,'*k','linewidth',2,'markersize',10);
xx2(1) = x0; xx2(2) = indexcol;
yy2(1) = y0; yy2(2) = indexrow;
zz2(1) = z0; zz2(2) = z0;
plot3(xx2, yy2, zz2, 'r','linewidth',2);

结果如下图所示:

----

2015-8-18
艺少

编程小号
上一篇 2025-08-04 09:27
下一篇 2025-10-06 16:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/127170.html