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/program/matlab/plot-and-surf.html

(0)
上一篇 2022年09月08日 20:17
下一篇 2022年09月10日 19:45

相关推荐

  • Matlab使用while来循环执行真值条件语句

    文章目录(展开/隐藏→) 展开常见用法语法说明重复执行语句,直到表达式为 False跳至下一循环迭代在表达式为 false 之前退出循环友情提示 4.3 (3) 前面,我们讲过Ma…

    2021年04月07日
    074
  • Matlab离散序列数据绘图函数stem

    文章目录(展开/隐藏→) 展开常见用法语法说明单数据序列得绘制多个数据序列得绘制在指定的 x 值位置绘制单个数据序列在指定的 x 值处绘制多个数据序列在唯一的 x 值集合处绘制多个…

    2020年12月10日
    0120
  • Matlab使用if语句来增加条件判断

    文章目录(展开/隐藏→) 展开常见用法语法说明使用 if、elseif 和 else 指定条件比较数组输出结果为:测试数组的相等性比较字符向量测试值的不相等性评估表达式中的多个条件…

    2021年04月04日
    0192
  • Matlab使用for语句来编写一定次数的循环

    文章目录(展开/隐藏→) 展开常见用法语法说明分配矩阵值递减值执行指定值的语句对每个矩阵列重复执行语句友情提示 4.5 (4) 今天,来教大家Matlab中for语句的使用。for…

    2021年03月30日
    1119
  • Matlab条形图创建函数bar使用方法

    文章目录(展开/隐藏→) 展开常见用法语法说明条形图的创建条形位置的指定条形宽度的指定条形组图的绘制堆叠条形图的绘制负数据堆叠条形图绘制分类数据的指定条形末端显示标签条形图指定坐标…

    2020年11月26日
    0105
  • Matlab快速入门之线性代数:线性方程组

    文章目录(展开/隐藏→) 展开计算注意事项通解方阵方程组超定方程组欠定方程组多右端线性方程组的求解迭代法多线程计算 4.7 (3) 本文属于Matlab快速入门之线性代数的第二篇,…

    2022年09月22日
    0148

发表回复

登录后才能评论
本站APP