MATLAB - 绘图


要绘制函数图,您需要执行以下步骤 -

  • 通过指定要绘制函数的变量x的值范围来定义x

  • 定义函数y = f(x)

  • 调用绘图命令,如plot(x, y)

下面的例子将演示这个概念。让我们针对 x 的取值范围从 0 到 100(增量为 5)绘制简单函数y = x 。

创建一个脚本文件并输入以下代码 -

x = [0:5:100];
y = x;
plot(x, y)

当您运行该文件时,MATLAB 显示以下图 -

绘制 y = x

让我们再举一个例子来绘制函数 y = x 2。在这个例子中,我们将绘制两个具有相同功能的图形,但在第二次时,我们将减少增量的值。请注意,当我们减少增量时,图形会变得更加平滑。

创建一个脚本文件并输入以下代码 -

x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:20:100];
y = x.^2;
plot(x, y)

当您运行该文件时,MATLAB 显示以下图 -

绘制 y = x^2

稍微更改一下代码文件,将增量减少到 5 -

x = [-100:5:100];
y = x.^2;
plot(x, y)

MATLAB 绘制更平滑的图形 -

以较小的增量绘制 y = x^2

在图表上添加标题、标签、网格线和缩放

MATLAB 允许您添加标题、沿 x 轴和 y 轴的标签、网格线,还可以调整轴以美化图形。

  • xlabel和ylabel命令沿 x 轴和 y 轴生成标签

  • 标题命令允许您在图表上添加标题。

  • grid on命令允许您将网格线放在图表上。

  • axis equal命令允许生成具有相同比例因子和两个轴上的空间的绘图。

  • axis square命令生成方形图。

例子

创建一个脚本文件并输入以下代码 -

x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal

MATLAB 生成以下图表 -

美化我们的图表

在同一个图上绘制多个函数

您可以在同一个图上绘制多个图形。下面的例子演示了这个概念 -

例子

创建一个脚本文件并输入以下代码 -

x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')

MATLAB 生成以下图表 -

同一个图上的多个函数

在图表上设置颜色

MATLAB 提供了八种用于绘制图形的基本颜色选项。下表显示了颜色及其代码 -

代码 颜色
w 白色的
k 黑色的
蓝色的
r 红色的
C 青色
G 绿色的
品红
y 黄色的

例子

让我们画两个多项式的图

  • f(x) = 3x 4 + 2x 3 + 7x 2 + 2x + 9 且

  • g(x) = 5x 3 + 9x + 2

创建一个脚本文件并输入以下代码 -

x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')

当您运行该文件时,MATLAB 会生成以下图表 -

图表上的颜色

设置轴比例

axis命令允许您设置轴比例。您可以通过以下方式使用 axis 命令提供 x 和 y 轴的最小值和最大值 -

axis ( [xmin xmax ymin ymax] )

下面的例子展示了这一点 -

例子

创建一个脚本文件并输入以下代码 -

x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])

当您运行该文件时,MATLAB 会生成以下图表 -

设置轴比例

生成子图

当您在同一图中创建一组图时,每个图都称为子图。subplot命令用于创建子图。

该命令的语法是 -

subplot(m, n, p)

其中,mn是绘图数组的行数和列数,p指定放置特定绘图的位置。

使用 subplot 命令创建的每个图都可以有自己的特征。以下示例演示了这个概念 -

例子

让我们生成两个图 -

y = e −1.5x sin(10x)

y = e −2x sin(10x)

创建一个脚本文件并输入以下代码 -

x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])

当您运行该文件时,MATLAB 会生成以下图表 -

生成子图