MATLAB绘图用 plot 把两组对应的数据画成曲线。看下面的例子,先准备自变量 x,再算出 y,最后调用 plot:
x = 0:0.1:10;
y = sin(x);
plot(x, y)运行后会弹出图形窗口,里面是一条正弦曲线,后面加标题、改线型、画多条曲线,都是在这三步上扩展出来的。
准备自变量 x
x 通常是一段等差数列,用冒号或 linspace 生成:
x = 0:0.1:10; % 从 0 到 10,步长 0.1(点密,曲线平滑)
x = 0:5:100; % 从 0 到 100,步长 5(点稀,折线明显)
x = linspace(0, 10, 200); % 0 到 10 之间均匀取 200 个点步长越小,采样点越多,曲线看起来越平滑。可以对比一下:
x1 = -100:20:100; y1 = x1.^2; subplot(1,2,1), plot(x1, y1), title('步长 20')
x2 = -100:5:100; y2 = x2.^2; subplot(1,2,2), plot(x2, y2), title('步长 5')左边仍能看出折线感,右边抛物线就顺多了。画图时采样点要给够。
算 y:用点运算
从 x 算 y 时,乘方、乘、除要对每个元素分别算,就要写点运算,否则会按矩阵规则处理:
x = 0:0.01:10;
y1 = x.^2; % 抛物线
y2 = sin(x); % 正弦
y3 = exp(-x) .* sin(2*x+3); % 衰减振荡(注意 .* )sin(2*x+3) 这样写没问题,但 exp(-x)*sin(2*x+3) 会按矩阵乘法理解两个数组,尺寸对不上就会报错,应写成 .*。
plot 的几种写法
plot(x, y) % 最基本
plot(y) % 只有 y:x 自动取 1,2,3...
plot(x, y, 'r--o') % 指定颜色、线型、标记
plot(x1, y1, x2, y2) % 同图多条曲线第三个参数 'r--o' 里,r 是颜色(red),-- 是虚线,o 是圆形标记。颜色、线型、标记的组合在下一篇美化图形里细讲。
多曲线与图例
x = 0:0.01:10;
plot(x, sin(x), x, cos(x), '.-')
legend('Sin(x)', 'Cos(x)')plot 一次传入两组 x、y,就会画出两条曲线。legend 按顺序给每条曲线加图例文字。
动手练习
- 画出
y = x^2在[-100, 100]的图形,分别用步长 20 和 5,比较平滑度。 - 画出
y = exp-x) .* sin(2*x+3)在[0, 10]的图,再用axis([0 10 -1 1])限定坐标范围。 - 在同一张图里画出 sin 和 cos,并加上 legend。