使用Matlab绘制三维图的几种方法
2015-08-18 22:27
603 查看
以下六个函数都可以实现绘制三维图像:
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)出来。下面通过一段标准的代码段进行展示如何构造出相应的数据。
其中meshgrid的作用就是生成网格(矩阵)数据xx,yy。观察xx,yy的数据为:
从图中可以看到实际上xx是将x复制了y的长度份,也就是将二维平面(x,y)按照x, y设定的步长分割成网络,自然对应的zz也应该是对应有网格x,y的各自长度的乘积个,如下图所示:
最后上段代码绘制出来的图像为:
其中还有一个值得说明的是plot3函数与plot函数用法类似,同样的按照类似mesh等的构造数据的方法,如果仅仅绘制在mesh图像中的某些数据点,就可以采用plot3函数实现。比如下段代码就可以实现绘制点,并且连线的功能:
结果如下图所示:
2015-8-18
艺少
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
艺少
相关文章推荐
- Matlab note
- vs2013+matlab 编译vlfeat 64位
- matlab初试牛刀__小练习
- [Matlab]随机漫步Random Walk和奇异期权的Matlab实现
- matlab的数据可视化
- 【转】在命令行中运行 matlab
- PageRank MATLAB 实现
- matlab 函数meshgrid的用法
- Matlab演示Parzen窗法
- matlab size,length,numel函数的用…
- Matlab splinetx
- [Matlab]蒙特卡罗方法和二叉树方法估计期权价值的Matlab实现
- matlab实现MSER(最大极值稳定区域)来进行文本定位
- matlab实现MSER(最大极值稳定区域)来进行文本定位
- 解密SVM系列(五):matlab下libsvm的简单使用
- Matlab把对应文件夹下的多个avi格式的视频转化成每一帧的图片
- matlab#2数值计算
- matlab#1软件基本操作
- matlab使用方法
- [转载]matlab中分号、冒号、逗号等常用标点符号的作用