Matlab快速入门之二维图和三维图

0
(0)

之前,我们已经分享了很多Matlab绘图函数的文章。今天这篇,属于Matlab入门篇,简单介绍下Matlab中二维图、三维图的创建方法,以及如何在一张图里绘制多张图。这里,主要以plot函数为例绘制二维图,以surf函数为例绘制三维图,以subplot、tiledlayout创建多个绘图。

Matlab快速入门之二维图和三维图

二维绘图

要创建二维线图,请使用plot函数。例如,绘制在从0到2π的值组成的线性间距向量上的正弦函数:

x = linspace(0,2*pi);
y = sin(x);
plot(x,y)
Matlab快速入门之二维图和三维图

可以标记轴并添加标题。需要注意的是,Matlab R2017a之前的版本需要用单引号代替双引号。

xlabel("x")
ylabel("sin(x)")
title("Plot of the Sine Function")
Matlab快速入门之二维图和三维图

通过向 plot 函数添加第三个输入参数,您可以使用红色虚线绘制相同的变量。同样的,Matlab R2017a之前的版本请用单引号代替双引号:

plot(x,y,"r--")
Matlab快速入门之二维图和三维图

"r--"(MatlabR2017a)、'r--'(MatlabR2016a)为线条设定。每个设定可包含表示线条颜色、样式和标记的字符。标记是在绘制的每个数据点上显示的符号,例如,+o 或 *。例如,g:*" 请求绘制使用 * 标记的绿色点线。

请注意,为第一幅绘图定义的标题和标签不再被用于当前的图窗窗口中。默认情况下,每次调用绘图函数、重置坐标区及其他元素以准备新绘图时,MATLAB® 都会清空图窗。

要将绘图添加到现有图窗中,请使用hold on。在使用 hold off 或关闭窗口之前,当前图窗窗口中会显示所有绘图。参考如下例子:当然,需要注意旧版本只能用单引号,而不是双引号,结果没有区别。

x = linspace(0,2*pi);
y = sin(x);
plot(x,y)

hold on

y2 = cos(x);
plot(x,y2,":")
legend("sin","cos")

hold off
Matlab快速入门之二维图和三维图

三维绘图

三维图通常显示一个由带两个变量的函数 z=f(x,y) 定义的曲面图。例如,对于给定的行向量和列向量 x 和 y,每个向量包含 [-2,2] 范围内的 20 个点,计算 z=xex^2−y^2 。

x = linspace(-2,2,20);
y = x';
z = x .* exp(-x.^2 - y.^2);

以上这种z值的写法,涉及了矩阵维度不一致,需要Matlab R2021b才可以支持;

老版本,我们可以使用如下方法来实现:两种方法,很明显写起来更方便,所以还是抓紧升级自己的Matlab吧。下面的meshgrid函数只能通过设定间隔来设定x、y值。

即,上面的linspace为-2到2平均取20个数字;下面的meshgrid为从-2到2,每隔0.15取一个值。其实,仔细考虑一下,没啥太大影响。

[x,y] = meshgrid(-2:0.15:2,-2:0.15:2);
z = x .* exp(-x.^2 - y.^2);

然后,创建曲面图。

surf(x,y,z)
Matlab快速入门之二维图和三维图

surf 函数及其伴随函数 mesh 以三维形式显示曲面图。surf 使用颜色显示曲面图的连接线和面。mesh 生成仅以颜色标记连接线条的线框曲面图。

多个绘图

您可以使用 tiledlayout 或 subplot 在同一窗口的不同部分显示多个绘图。

tiledlayout 函数是在 R2019b 中引入的,该函数比 subplot 提供更多对标签和间距的控制。例如,在图窗窗口中创建 2×2 布局。然后,每当您要某个绘图出现在下一区域中时,请调用 nexttile

t = tiledlayout(2,2);
title(t,"Trigonometric Functions")
x = linspace(0,30);

nexttile
plot(x,sin(x))
title("Sine")

nexttile
plot(x,cos(x))
title("Cosine")

nexttile
plot(x,tan(x))
title("Tangent")

nexttile
plot(x,sec(x))
title("Secant")

关于R2019b之前的版本,请使用如下subplot的写法,创建多个绘图:这里,我用的Matlab R2016a,因此把标题命名中的双引号一并换成了单引号。

x = linspace(0,30);

subplot(2,2,1)
plot(x,sin(x))
title('1Sine1')

subplot(2,2,2)
plot(x,cos(x))
title('Cosine')

subplot(2,2,3)
plot(x,tan(x))
title('Tangent')

subplot(2,2,4)
plot(x,sec(x))
title('Secant')

需要注意的是,subplot方式无法为这四张图一起写一个共同的标题。

Matlab快速入门之二维图和三维图

共计0人评分,平均0

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/2854.html

(0)
微信公众号
古哥的头像古哥管理团队
上一篇 2022年09月08日 20:17
下一篇 2022年09月10日 19:45

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号