![cc76bf6c5afc9beabcddfc3a8a34245b.png](https://i-blog.csdnimg.cn/blog_migrate/4fb2694a291f72d9b2f165e8025ed07a.png)
![cc76bf6c5afc9beabcddfc3a8a34245b.png](https://i-blog.csdnimg.cn/blog_migrate/4fb2694a291f72d9b2f165e8025ed07a.png)
众所周知,matlab不仅擅长处理与矩阵相关的数值运算,在科学可视化方面,它同样有着很深的积淀。它提供的众多功能丰富的函数,可以很好地满足我们需要用到图形来展示数值信息的各种各样的需求。
MATLAB具有二维、三维乃至四维的图形表现能力。它可以从线型、边界色、色彩、渲染、光线、视角等方面把数据的特征表现出来。
MATLAB的图视化功能是建立在一组图形对象的基础之上。图形对象的核心是图形的句柄(Granhics Handle)操作。
绘图指令分两个层次: 1、底层(Low-level)绘图指令:直接对句柄进行操作。 底层绘图指令控制和表现数据图形的能力比高层绘图指令强。但是灵活多变,较难掌握。 2、高层(High-level)绘图指令:建立在底层指令之上。 高层绘图指令较为常用,且简单明了容易掌握。常用的一些底层指令如下所示:
gcf:返回当前窗口对象的句柄(Get CurrentFigure)
gca:返回当前轴对象的句柄(Get Current Axes)
gco:返回当前图形对象的句柄(Get CurrentObject)
get:获得句柄图形对象的属性和返回某些对象的句柄值
set:改变图形对象的属性
delete(h):删除句柄为h的图形对象本文主要介绍一些高层绘图指令的相关函数:
01 matlab能绘制的图形类型x=0:0.01:2*pi;
y=cos(x);
plot(x,y);
xlabel('x轴'); % x轴注解
ylabel('y轴'); % y轴注解
title('余弦函数'); % 图形标题
legend('y = cos(x)'); % 图形注解
gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置
grid on; % 显示格线
在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;
把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图。
x=linspace(0,2*pi,30);y=sin(x); z=cos(x);
u=2*sin(x).*cos(x);v=sin(x)./cos(x);
subplot(2,2,1),plot(x,y),axis([02*pi -1 1]),title('sin(x)')
subplot(2,2,2),plot(x,z),axis([02*pi -1 1]),title('cos(x)')
subplot(2,2,3),plot(x,u),axis([02*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4),plot(x,v),axis([02*pi -20 20]),title('sin(x)/cos(x)')
Matlab绘制三维图,最常用的是surf、mesh这两个函数及其衍生函数。
x=linspace(-2,2, 25); % 在x轴上取25点
y=linspace(-2, 2, 25); % 在y轴上取25点
[xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩阵
zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵
surf(xx, yy, zz); % 画出立体曲面图
以peaks函数为例,以各种不同方法进行绘图1、meshz可将曲面加上围裙:
[x,y,z]=peaks;
meshz(x,y,z);
axis([-inf inf -inf inf -inf inf]);
2、waterfall可在x方向或y方向产生水流效果:
[x,y,z]=peaks;
waterfall(x,y,z);
axis([-inf inf -inf inf -inf inf]);
3、y方向的水流效果:
[x,y,z]=peaks;
waterfall(x',y',z');
axis([-inf inf -inf inf -inf inf]);
4、meshc可以同时画出网状图与等高线:
[x,y,z]=peaks;
meshc(x,y,z);
axis([-inf inf -inf inf -inf inf]);
5、surfc同时画出曲面图与等高线:
[x,y,z]=peaks;
surfc(x,y,z);
axis([-inf inf -inf inf -inf inf]);
6、对比meshc、meshz、surfc、surfl这四个函数
[x,y]=meshgrid(0:0.1:2,1:0.1:3)
z=(x-1).^2+(y-2).^2-1
subplot(2,2,1);meshc(x,y,z)
subplot(2,2,2);meshz(x,y,z)
subplot(2,2,3);surfc(x,y,z)
subplot(2,2,4);surfl(x,y,z)
举一个例子,使用同一色图,以不同着色方式绘制圆锥体。
[x,y,z] =cylinder(pi:-pi/5:0,10)
colormap(lines)
subplot(1,3,1)
surf(x,y,z);
shading flat
subplot(1,3,2)
surf(x,y,z);
shading interp
subplot(1,3,3)
surf(x,y,z)
作者:极值学院占学长
往期推荐1、美赛如何报名?
2、应该和什么样的人组队? 情侣组队会分手?
3、建模美赛应该如何选题?F题为什么是语文建模?
4、为什么要参加数学建模竞赛?HR为什么看中这个比赛?
5、参加建模美赛,期末前该做哪些准备?
6、参加建模美赛,期末后该做哪些准备?
7、为什么要有双负责人? 分别负责什么?
8、参加数学建模竞赛,注意两个违规事项!
9、竞赛技巧: 如何合理作息? 如何调整心态?
10、竞赛技巧: 为什么要无交流审题?
11、竞赛技巧: 你的论文10分钟就评完了?
12、竞赛技巧: 怎么做能拿到O奖、F奖?
13、论文结构: 模型假设写得好,论文差不了!
14、论文结构: 参加建模美赛,论文主体怎么写?
15、论文写作: 重中之重的摘要怎么写?
16、美赛专家Frank Giordano编写的数学建模教材PDF
17、公开课第1场:常用的启发式算法——人工申请网络
18、2021美赛C题数据提前发布,如何用Python分析处理?