MATLAB 中最常用也是最基本二维作图命令为plot, plot函数针对向量或矩阵的列来绘制曲线的. 调用plot函数的常用格式有以下几种
• plot(x): 当x为一向量时, 以x元素的值为纵坐标, x的序号为横坐标值绘制曲线. 当x为一实矩阵时, 则以其序号为横坐标, 按列绘制每列元素值相对于其序号的曲线, 当x为 m × n矩阵时, 就有 n 条曲线。
• plot(x,y): 以x元素为横坐标值, y元素为纵坐标值绘制曲线.
• plot(x,y1,x,y2,...): 以公共的x元素为横坐标值, 以y1, y2... 元素为纵坐标值绘制多
条曲线.
值得注意的是, 在上面的每种用法中, 还可额外指定颜色, 点型或线型来区分不同的数据组. 下
面给出一个简单的实例:
% 画sin和cos曲线
x = -2*pi:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure('position',[80,80,500,500]) % 图的坐标是(80,80),大小是700x700
plot(x, y1, '-b');
hold on
plot(x, y2, '-r');
xlabel('x')
ylabel('y')
text(0,0, '(0,0)')
title('sinx和cosx的图像')
legend('sin(x)', 'cos(x)')
值得注意的是, 在上面的每种用法中, 还可额外指定颜色、点型或线型来区分不同的数据组. 下面给出一个简单的实例:
% 画sin和cos曲线
x = -2*pi:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, '-b');
hold on % 允许多个图形叠加于同一个坐标系
plot(x, y2, '-r');
xlabel('x')
ylabel('y')
text(0,0, '(0,0)')
title('sinx和cosx的图像')
legend('sin(x)', 'cos(x)')
以上程序中plot(x,y1,'-b')画出了一箱 y = sinx 的曲线, 其中参数'-b'指定了曲线为蓝色实线. 更多参数选项见表1. 在上面的程序中还用到了一些常要命令, 下面更多常用的命令。
除了plot外, 还有一些常用的二维作图命令, 下面给出这些命令的列表, 请读者自行查找帮助文档来了解它们的用法。
作图时如何表示出字母的上下标呢?
上标用^(指数),下标用 _(下划线)
调用方式为: ^{任意字符}, _{任意字符}, 注意{}的使用!
举例figure, title('x^{2},y_{3}');运行结果如下:
与二维曲线作图函数plot相对应, MATLAB 提供了plot3函数, 可以在三维空间中绘制三维曲线,它的格式类似于 plot, 不过多了 z 方向的数据. 这里不再祥述其调用格式, 给出一个实例供读者学习。
% 画螺旋线
t=0:pi/50:10*pi;
x = sin(t);
y = cos(t);
z = t;
plot3(x,y,z)
title('Helix')
xlabel('sint(t)')
ylabel('cos(t)')
zlabel('t')
grid on
除了三维空间曲线, 三维作图中还有三维曲面作图. 用于绘制三维曲面的函数主要有mesh和surf. 在用mesh和surf绘制三维曲面时, 常伴随着函数meshgrid的使用, meshgrid是MATLAB 中用于生成网格采样点的函数, 生成绘制 3-D 图形所需的网格数据. 下面给出surf绘制曲面的实例。
% 画曲面 z = sin(x)*cos(y)
figure
[x,y] = meshgrid(-pi:0.1:pi,3:0.1:6); % x轴是-pi:0.1:pi,y轴是3:0.1:6
z = sin(x).*cos(y);
surf(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
title('sin x sin y')
以上程序, 先用 meshgrid 函数产生在 x-y 平面上的二维的网格数据,再以一组 z 轴的数据对应
到这个二维的网格, 即可用surf(x,y,z)画出三维的曲面.