MATLAB三维绘图---三维曲面图
matlab绘制三维图中,最常见的是三维曲线图和三维曲面图
三维曲线图比较简单函数命令为plot3,已经详细介绍过,具体请见Matlab三维绘图------三维曲线图
三维曲面图的不同类型及对比
三维曲面图又分为三维网面和三维网格面图,其原理相似只是调用格式不同而已。总结如下:
plot3(x,y,z);%绘制数据的三维曲线图
mesh(x,y,z); %绘制数据的三维网格面图
surf(x,y,z); %绘制数据的三维网面图
meshc(x,y,z);%绘制数据的三维网格面图,并添加等值线
surfc(x,y,z);%绘制数据的三维网面图,并添加等值线
meshz(x,y,z);%绘制数据的三维网格面图,并添加等值线
[X,Y]=meshgrid(x,y);分别产生两个1、以向量x为行,向量y为列的矩阵,2、并且向量x的长度为新矩阵的列数,y的长度为新矩阵的行数 的新矩阵X和Y.
上面:[X,Y]=meshgrid(x,y)在绘制三维曲面图中非常重要,在用方程绘制曲面图中常用。在这里不赘述,详细介绍可见前文,请点击下面超链接。
比如向量x=[1,2,3],向量y=[4,5],[X,Y]=meshgrid指令的作用是分别产生两个1、以向量x为行,向量y为列的矩阵,2、并且向量x的长度为新矩阵的列数,y的长度为新矩阵的行数 的新矩阵X和Y.
在这里即为两行三列。所以:
X=
1 2 3
1 2 3
Y=
4 4 4
5 5 5
关于[X,Y]=meshgrid指令的作用已详细讲过,具体可见Meshgrid用法简介
关于mesh(x,y,z)、surf(x,y,z)、meshc(x,y,z)、surfc(x,y,z)、meshz(x,y,z);这几个函数的区别,通过绘制高斯矩阵的曲面来看看
z=peaks(40);
mesh(z)
surf(z)
meshc(z)
surfc(z)
meshz(z)
将这些图分别绘制在一张figure上也非常简单,仍然是用到多重子图subplot指令:
z=peaks(40);
subplot(2,3,1);
mesh(z);
subplot(2,3,2);
surf(z);
subplot(2,3,3);
meshc(z);
subplot(2,3,4);
surfc(z)
subplot(2,3,5);
meshz(z)
总结:mesh是网格,surf是网面。网格绘出的三维图就像是渔网一般一格一格的。网面绘出的三维图是曲面的,上面没有格,至于线是辅助线。mesh(z)和surf(z)则是加了等值线,相当于那些值相等,就用圈圈做以标记。meshz(z)是加了一个零平面作为参考。
用方程绘制三维曲面图
举几个不同的例子来说明
例1:
x在[0,2pi],y在[0,2pi],作三维曲面图z=cos(x)+sin(y)
x=(0:0.01:2*pi);
y=x;
[X,Y]=meshgrid(x,y);
z=cos(X)+sin(Y);
mesh(X,Y,z)
注:通常在确定向量x,y的基础上,使用命令meshgrid生成新的矩阵数据[X,Y],再输入函数z=f(x,y,z),最后用mesh或surf指令生成三维曲面图。
如果不用meshgrid生成矩阵的话会有如下错误:
例2:
绘制如下方程的三维曲面图:
x=(-7.5:0.01:7.5);
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2);
Z=sin(R)./R;
mesh(X,Y,Z)
通过meshgrid指令将向量x和y,分别生成了矩阵X、Y.那么在以上代码中
R=sqrt(X. ^2+ Y.^2)以及Z=sin(R)./R中的加了.的原因是什么呢?
这是因为在变量运算里有以下几个基本规则:
a.*b %矩阵a和矩阵b中各个元素相乘
a.*b.*c %矩阵a,矩阵b和矩阵c中各个元素相乘
a.^2 %求取矩阵a中各个元素的平方
a./b %矩阵a中各个元素除以矩阵b中的各个元素
a.\b %矩阵b中各个元素除以矩阵a中的各个元素
因而先通过meshgrid指令将向量变成矩阵X和Y,再通过上述指令:
x的平方就是a.^2 即:X.^2,以及y的平方: Y.^2 ,而sin(R)/R即a./b , 即:sin(R)./R
以上了解了之后用方程绘制三维曲面图就非常简单了,再来一个例子:
x=(-3:0.01:3);
y=(-4:0.01:3);
[X,Y]=meshgrid(x,y);
Z=X.*exp(-(X.^2+Y.^2));
mesh(X,Y,Z)
theta=(-pi:0.05:4*pi);
x=cos(theta);
y=sin(theta);
[X,Y]=meshgrid(x,y);
z=abs(cos(X.*3)).*exp(-abs(theta/3));
mesh(X,Y,z)
MATLAB三维绘图---三维曲面图相关推荐
- Matlab三维绘图------三维曲线图
在matlab中绘制的三维图主要有三种: 三维曲线图.立体网状图.和三维曲面图 其基本命令为: plot3 %三维曲线图 mesh %立体网状图 surf %三维曲面图 三维曲线图基本绘图函数 函数命 ...
- python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)
python matplotlib 绘制3D图表 文章目录 1. 绘制3D柱状图 2. 绘制3D曲面图 ① 示例1 ② 示例2 3.绘制3D散点图 4. 绘制3D曲线图 ʚʕ̯•͡˔•̯᷅ ...
- matlab笔记——绘图篇——折线图+散点图+饼图+直方图+柱状图+箱线图+三维图+地图
今天早上刚讲完课,一个小时的培训准备起来也很不容易呐,但是讲完还是挺开心的啦. 现在来把绘图篇更新一下. 这篇主要就讲matlab数据可视化,介绍一下matlab基本图形绘制. 绘图篇 数据导入 给大 ...
- MATLAB三维绘图(三)绘制等值线图
MATLAB三维绘图(三)绘制等值线图 1.使用contour函数绘制等值图,示例: %% 显示不同颜色的梯度图 clear; clc; close all; x = -3.5:0.2:3.5; y ...
- matlab的三维绘图和四维绘图
一.三维绘图 1.曲线图 plot3(X1,Y1,Z1,...):以默认线性属性绘制三维点集(X1,Y1,Z1)确定的曲线 plot3(X1,Y1,Z1,LineSpec):以参数LineSpec确定 ...
- 《matlab科研绘图系列》之小提琴图绘制
相信大家对小提琴图并不陌生,它是比箱形图更易于视觉直观解读的图形绘制方法.它使用数据的核密度估计值代替了箱形图,并可选择叠加数据点本身.小提琴图是箱形图的升级加强版,对数据分布有更丰富的理解,同时不必 ...
- Python 绘制高斯曲面图
今天来简单介绍一个如何用python绘制高斯分布三维分布的曲面图. 我们知道高斯分布的二维表达式为: Gaussian=exp−(x2+y2)w02.Gaussian =\exp{\frac{-(x ...
- MATLAB绘制三维曲面图和等高线 绘图(2)
绘制三维曲面图步骤: 1): 对数据进行处理,得到三维曲面上的点坐标组 方法有: 1.将自变量离散, x=xmin:dx:xmax y=ymin:dy:ymax 2.利用meshgrid 指令 生成 ...
- Matlab之绘制三维曲面图
最近在学matlab三维绘图,总结了自己学的一些点,就当是记笔记啦! 情况一: z和x,y有关系,z=f(x,y) 1.surf方法 基本语法 surf(X,Y,Z) 这里的Z可以用X ...
最新文章
- 公安部全面查找改革开放以来失踪被拐儿童 失踪被拐儿童父母和疑似被拐人员快去采集DNA
- opencv画框返回坐标 python_python opencv鼠标事件实现画框圈定目标获取坐标信息
- 【Python】机器学习绘图神器Matplotlib首秀!
- 你应该知道的一些事情——CSS权重
- 熊猫烧香病毒背后的***社会
- python写的系统常用命令(二)
- 模型参考自适应控制器(MRAC)系列: 2.提升瞬态性能
- 前往庄园失败 当前服务器不稳定,摩尔庄园手游登录不了是怎么回事 摩尔庄园手游登录失败怎么办...
- C语言读取文件所有内容
- 甘肃自考计算机技术,甘肃自考计算机与网络技术基础课程考试说明
- 关于Oracle统计中关于操作系统的统计说明,oracle10个/11g的新特点 自动工作量资料档案库(AWR) 文平...
- 全球排名前500的网站都是做什么的
- google浏览器打开不久自动退出
- ConvE:Convolutional 2D Knowledge Graph Embeddings
- Scratch快速入门(一)
- 1024是什么节日 (中国程序员节)
- 加拿大PCI GXL地理成像加速器-地理国情大显身手
- android使用wifi连接android手机
- 【调剂】东北石油大学计算机科学与技术专业接收调剂
- 在Windows服务器上搭建Nuget私人服务器(超~详细)