今天我们继续学习MATLAB中图像的绘制。
平面图形
grid on:
在图形上显示网格线。这个命令通常用于增强图形的可读性,尤其是在查看函数图形或者数据点分布时,网格线可以帮助用户更准确地判断坐标点的位置。
plot(x,y):
x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
plot(x1,y1,选项1,x2,y2,选项2,...,xn,yn,选项n):
多组折线,可选择表示折线的属性,如颜色、线型等。
以下是线型表

如:在0≤X≤2π区间内绘制曲线y=2e^(-0.5*x)*sin(2πx)
Matlab
x = 0:pi/100:2*pi;
y = 2*exp(-0.5*x).*sin(2*pi*x); % 注意这里的 .* 用于元素对元素乘法
plot(x, y, 'r'); % 使用x和y中的元素分别作为横坐标和纵坐标来绘制曲线
效果图

fplot('fun',[a,b]):
绘制fun在区间[a,b]上的图形,fun可以是函数或表达式。与上面三个不同的是,这个函数是直接绘制的函数图像,而非是由单个点连起来的折线。
同样绘制上图数据
Matlab
fplot(@(x) 2*exp(-0.5*x)*sin(2*pi*x), [0, 2*pi], 'g');

三维图形
plot3(x1,y1,z1,选项1,...,xn,yn,zn,选项n):
如:绘制三维参数曲线

Matlab
t = 0:pi/50:2*pi;
x = 8*cos(t);
y = 4*sqrt(2)*sin(t);
z = -4*sqrt(2)*sin(t);
plot3(x, y, z, 'p');
结果如图:

曲面图形
[X, Y] = meshgrid(xa, ya);绘制网格坐标矩阵
mesh(X, Y, Z);% 绘制三维网格图
Matlab
% 定义x轴和y轴的向量
xa = -2:0.2:2;
ya = xa;
% 生成网格坐标矩阵
[X, Y] = meshgrid(xa, ya);
% 计算高度值
Z = X .* exp(-X.^2 - Y.^2);
% 绘制三维网格图
mesh(X, Y, Z);

surf(X, Y, Z); % 绘制三维着色表面图
Matlab
% 定义x轴和y轴的向量
xa = -2:0.2:2;
ya = xa;
% 生成网格坐标矩阵
[X, Y] = meshgrid(xa, ya);
% 计算高度值
Z = X .* exp(-X.^2 - Y.^2);
% 绘制三维着色表面图
surf(X, Y, Z);

contour(X, Y, Z, [levels]) ;% 绘制二维等高线图,levels
是一个向量,包含了多个等高线级别,每个级别对应一个等高线。
Matlab
% 定义x轴和y轴的向量
xa = -2:0.2:2;
ya = xa;
% 生成网格坐标矩阵
[X, Y] = meshgrid(xa, ya);
% 计算高度值
Z = X .* exp(-X.^2 - Y.^2);
% 绘制二维等高线图
contour(X, Y, Z);

contour3(X, Y, Z,[levels]); % 绘制三维等高线图
Matlab
% 定义x轴和y轴的向量
xa = -2:0.2:2;
ya = xa;
% 生成网格坐标矩阵
[X, Y] = meshgrid(xa, ya);
% 计算高度值
Z = X .* exp(-X.^2 - Y.^2);
% 绘制三维等高线图
contour3(X, Y, Z);
