基本原理是先绘制三维图,通过plot3,然后通过text函数在每个点标注出坐标,但由于点的数量多,标注会比较密集,不一定看得清楚,可以适当减少标注的点数来提高清晰度。
clc
close all
clear
x = 1:20;
y = 1:20;
z = rand(1,20);
plot3(x,y,z)
xlabel 时间
ylabel 方位角(°)
zlabel 高低角(°)
grid on
for ii=1:1:length(x)
text(x(ii),y(ii),z(ii),['(' num2str(x(ii)) ',' num2str(y(ii)) ',' num2str(z(ii)) ')'])
end
clc
close all
clear
x = 1:20;
y = 1:20;
z = rand(1,20);
plot3(x,y,z)
xlabel 时间
ylabel 方位角(°)
zlabel 高低角(°)
grid on
for ii=1:2:length(x)
text(x(ii),y(ii),z(ii),['(' num2str(x(ii)) ',' num2str(y(ii)) ',' num2str(z(ii)) ')'])
end
mesh(x,y,z,c)
用于绘制三维网格图
补面无颜色
具有等高线的三维曲面网格曲面函数meshc
带有底座的三维网络曲面函数meshz
surf(x,y,z,c)
用于绘制三维曲面图
补面有颜色
具有等高线的曲面函数surfc
具有光照效果的曲面函数surfl
(这些特殊函数见例二)
(1)mesh/surf(x,y,z,c)
x,y,z是同型矩阵
x,y是网格坐标矩阵
z是网格上的高度矩阵
c用于指定在不同高度下的曲面颜色。c省略时,默认z=c,颜色的设定正比于图像的高度。
(2)mesh/surf(z,c)
当x,y省略时,z矩阵的第二位坐标当作x轴下标,z矩阵的第一维下表当作y轴坐标。
参考代码例1:
t=-2:0.2:2;
[X,Y]=meshgrid(t);
Z=X.*exp(-X.^2-Y.^2);
subplot(1,3,1);
mesh(X,Y,Z);
title('mesh')
subplot(1,3,2);
surf(X,Y,Z);
title('surf');
subplot(1,3,3);
plot3(X,Y,Z);
grid on
title('plot3')
参考代码例2:
[x,y]=meshgrid(0:0.1:2,1:0.1:3);%
z=(x-1).^2+(y-2).^2-1;
subplot(2,2,1);
meshc(x,y,z);
title('meshc');
subplot(2,2,2);
meshz(x,y,z);
title('meshz');
subplot(2,2,3);
surfc(x,y,z);
title('surfc');
subplot(2,2,4);
surfl(x,y,z);
title('surfl');
参考代码例3:
t=1:5;
z=[0.5*t;2*t;3*t];
mesh(z);
xlabel('x');%x坐标是z元素的列下标
ylabel('y');%y坐标是z元素的行下标
zlabel('z');