MATLAB 绘图



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

  • 定义x,指定变量x值域,在此值域内绘制函数。

  • 定义函数,y = f(x)

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

以下示例将演示此概念。让我们绘制简单函数y = x,x 的值域为 0 到 100,增量为 5。

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

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

运行文件后,MATLAB 将显示以下图表:

Plotting y = x

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

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

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

运行文件后,MATLAB 将显示以下图表:

Plotting y = x^2

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

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

MATLAB 绘制更平滑的图形:

Plotting y = x^2 with less increment

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

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

Sprucing up our graphs

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

您可以在同一图表上绘制多个图形。以下示例演示了该概念:

示例

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

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

MATLAB 生成以下图表:

Multiple Functions on the Same Graph

设置图形颜色

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 将生成以下图表:

Colors on Graph

设置坐标轴比例

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 将生成以下图表:

Setting Axis Scales

生成子图

当您在同一图形中创建一组图表时,每个图表都称为子图。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 将生成以下图表:

Generating Sub-Plots
广告