MATLAB - 绘图
要绘制函数的图形,您需要执行以下步骤 −
定义x,通过指定变量x的值范围,为其绘制函数
定义函数,y = f(x)
调用plot命令,如plot(x, y)
下面的例子将演示这个概念。 让我们针对 x 的取值范围从 0 到 100 绘制简单函数 y = x,增量为 5。
创建脚本文件并输入以下代码 −
x = [0:5:100]; y = x; plot(x, y)
运行该文件时,MATLAB 将显示以下图 −
让我们再举一个例子来绘制函数 y = x2。 在这个例子中,我们将绘制两个具有相同功能的图形,但在第二次时,我们将减少增量的值。 请注意,当我们减少增量时,图形会变得更加平滑。
创建脚本文件并输入以下代码 −
x = [1 2 3 4 5 6 7 8 9 10]; x = [-100:20:100]; y = x.^2; plot(x, y)
运行该文件时,MATLAB 将显示以下图 −
稍微修改一下代码文件,将增量减少到5 −
x = [-100:5:100]; y = x.^2; plot(x, y)
MATLAB 绘制的图形更加平滑 −
在图表上添加标题、标签、网格线和缩放
MATLAB 允许您添加标题、沿 x 轴和 y 轴的标签、网格线,还可以调整轴以美化图形。
xlabel 和 ylabel 命令沿 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 生成以下图表 −
在同一个图上绘制多个函数
您可以在同一个绘图上绘制多个图表。 下面的例子演示了这个概念 −
示例
创建脚本文件并输入以下代码 −
x = [0 : 0.01: 10]; y = sin(x); g = cos(x); plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')
MATLAB 生成以下图表 −
设置图表颜色
MATLAB 提供了八种用于绘制图形的基本颜色选项。 下表显示了颜色及其代码 −
代码 | 颜色 |
---|---|
w | White |
k | Black |
b | Blue |
r | Red |
c | Cyan |
g | Green |
m | Magenta |
y | Yellow |
示例
让我们绘制两个多项式的图形
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 会生成以下图形 −
设置轴比例
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)
其中,m 和 n 是绘图数组的行数和列数,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 会生成以下图形 −