MATLAB 绘图

绘制函数图形需要执行以下步骤

  1. 定义 x,通过指定变量 x 的取值范围,为需要绘制函数的值的范围
  2. 定义函数 y = f(x)
  3. 调用绘图命令,如 plot(x, y)

下面的示例演示了这个概念。让我们绘制简单函数 y = x,其中 x 的取值范围为 0 到 100,步长为 5。

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

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

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

matlab 绘制 y = x

我们再来看一个例子,绘制函数 y = x^2。在这个例子中,我们将用相同的函数绘制两个图形,但第二次,我们将减少增量的值。

请注意 ,随着我们减小增量,图形变得更加平滑。

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

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

当我们运行该文件时,MATLAB 将显示以下图形-

matlab 绘制 y = x^2

将代码文件稍作修改,将增量减小到 5

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

MATLAB 绘制出更平滑的图形

matlab 减少增量后的 y = x^2 绘图


添加图形的标题、标签、网格线和缩放

MATLAB 允许您添加图形标题、x 轴和 y 轴标签、网格线,并调整坐标轴来美化图形。

  • xlabelylabel 命令会在 x 轴和 y 轴上生成标签。
  • title 命令允许您在图形上放置标题。
  • 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 生成以下图形

matlab 改善图形


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

我们可以在同一绘图中绘制多个图形。以下示例演示了这个概念

例如,创建一个脚本文件并键入以下代码-

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

MATLAB 生成下图

matlab 一个图形上绘制多个函数


在图形上设置颜色

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

代码 颜色
w 白色
k 黑色
b 蓝色
r 红色
c 青色
g 绿色
m 洋红色
y 黄色

示例

我们来绘制两个多项式的图形

  • f(x) = 3x4 + 2x3+ 7x2 + 2x + 9 和
  • g(x) = 5x3 + 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生成以下图形

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生成以下图形

matlab 设置 轴刻度


生成子图

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

命令的语法为 -

subplot(m, n, p)

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

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

示例

让我们生成两个图形

  • y = e−1.5xsin(10x)
  • y = e−2xsin(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生成以下图形

matlab 生成子图

查看笔记

扫码一下
查看教程更方便