matlab动态读取一张图片,赛前必看,这些必备的Matlab绘图函数你会了吗?

02f85a9395dd93b892dcb74eab42aef7.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能绘制的图形类型

aaa481594f4d98e486ac973ea0f81361.png

6fa6ee7375c40a5cbf4e50046dd2ce1e.png

661f236f94281262eb24858a0ed46384.png

0 2

绘图的一般步骤

0cc373399ef64c51b7016830a968e1df.png

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; % 显示格线

bca22d38b12d56c9b05f276e7579be6d.png

03

关于图形坐标轴的设置

cd54e982fc2b9d63e40b5a58cca7fba0.png

04

图形的修饰符号——线型、颜色和标记符

bf0ead402de00cd47ee5c4980f6d2a4e.png

05

同一图形窗口绘制不同的子图

在同一个画面上建立几个坐标系, 用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)')

73a325d6699b149f1245debadd28d59f.png

06

三维图的各种样式

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); % 画出立体曲面图

9ee155c33626e6f8bea95fb1255f31ac.png

以peaks函数为例,以各种不同方法进行绘图

1、meshz可将曲面加上围裙:

[x,y,z]=peaks;

meshz(x,y,z);

axis([-inf inf -inf inf -inf inf]);

3c3e490824016cd497ac6babae1a2672.png

2、waterfall可在x方向或y方向产生水流效果:

[x,y,z]=peaks;

waterfall(x,y,z);

axis([-inf inf -inf inf -inf inf]);

203d06c87d22a89317c9b98d6227dd86.png

3、y方向的水流效果:

[x,y,z]=peaks;

waterfall(x',y',z');

axis([-inf inf -inf inf -inf inf]);

10efb07977eac2db8853ade12d048d5c.png

4、meshc可以同时画出网状图与等高线:

[x,y,z]=peaks;

meshc(x,y,z);

axis([-inf inf -inf inf -inf inf]);

314b5fa8d895ffa6ef239c940deb2489.png

5、surfc同时画出曲面图与等高线:

[x,y,z]=peaks;

surfc(x,y,z);

axis([-inf inf -inf inf -inf inf]);

53364fb400d6782bc5216758abcbfaad.png

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)

8e03ef30b607198088a88f8d9b2af1d4.png

07

其他图形的绘制

举一个例子,使用同一色图,以不同着色方式绘制圆锥体。

[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)

17dcec1849d49d5d09c82cd3062dd069.png

作者:极值学院占学长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值