MATLAB:三维坐标及函数案例实现

MATLAB:三维坐标及函数案例实现

目录

  • MATLAB:三维坐标及函数案例实现
    • 案例一:matlab 绘制三维图并标注每个点的坐标
      • 1.前言
      • 2.代码实现
    • 案例二:matlab 绘制三维曲面的函数
      • 1.mesh函数
      • 2.surf函数
      • 3.两者调用格式差不多
      • 4.比较mesh、surf的区别

案例一:matlab 绘制三维图并标注每个点的坐标

1.前言

基本原理是先绘制三维图,通过plot3,然后通过text函数在每个点标注出坐标,但由于点的数量多,标注会比较密集,不一定看得清楚,可以适当减少标注的点数来提高清晰度。

2.代码实现

 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

MATLAB:三维坐标及函数案例实现_第1张图片

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

MATLAB:三维坐标及函数案例实现_第2张图片

案例二:matlab 绘制三维曲面的函数

1.mesh函数

mesh(x,y,z,c)
用于绘制三维网格图

补面无颜色
具有等高线的三维曲面网格曲面函数meshc
带有底座的三维网络曲面函数meshz

2.surf函数

surf(x,y,z,c)
用于绘制三维曲面图

补面有颜色
具有等高线的曲面函数surfc
具有光照效果的曲面函数surfl
(这些特殊函数见例二)

3.两者调用格式差不多

(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轴坐标。

4.比较mesh、surf的区别

参考代码例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')

MATLAB:三维坐标及函数案例实现_第3张图片

参考代码例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');

MATLAB:三维坐标及函数案例实现_第4张图片

参考代码例3

t=1:5;
z=[0.5*t;2*t;3*t];
mesh(z);
xlabel('x');%x坐标是z元素的列下标
ylabel('y');%y坐标是z元素的行下标
zlabel('z');

MATLAB:三维坐标及函数案例实现_第5张图片

你可能感兴趣的:(Python)