发布时间:2023-02-10 22:30
最近在学matlab三维绘图,总结了自己学的一些点,就当是记笔记啦!
情况一:
z和x,y有关系,z=f(x,y)
1、surf方法
基本语法 surf(X,Y,Z)
这里的Z可以用X,Y来表示,是关于X,Y的函数形式(z=f(x,y))
2、meshc方法
基本语法 meshc(x,y,z)
其实surf和meshc方法类似,区别是surf有填充,mesh没有填充,也就是说surf画出来的图从视觉的角度上来看黑乎乎的,mesh比较干净(比较直白的解释)。
附上程序:
结果图是直接截的图,不规范,大家不要学我哈,正规保存图片!!
clc;
A=[176.923 87.4359 -383.59
160.563 95.493 -421.408
175.034 91.2752 -401.611
133.165 84.3038 -378.734
183.704 82.4691 -369.383
222.345 88.2759 -412.69
145.08 77.9421 -384.823
178.701 77.6623 -388.571
155.385 75.641 -383.59
230.556 80.8333 -415.556
156.667 64.5238 -356.19
167.688 63.6637 -359.399
175.668 62.908 -355.134
148.166 59.8817 -354.083
170.06 57.006 -358.323
13.8507 54.6866 -357.254];
x=A(:,1);y=A(:,2);z=A(:,3);
figure(1)
scatter3(x,y,z)%散点图
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
figure(2)
surf(X,Y,Z);%三维曲面,需要两个自变量,一个因变量。
figure(3)
mesh(X,Y,Z);%三维曲面(浅色),如果想加等高线meshc(X,Y,Z)
figure(4)
contourf(X,Y,Z); %等高线图
figure(5)
mesh(X,Y,Z);
view(0,0); %调整角度,figure(5)是调整角度后的mesh三维曲面的剖面图
hidden on;%使网格图后面的线条被前面的线条遮住
散点图:
surf语法(三维曲面):
mesh语法(三维曲面没有等高线):
按住这个按钮可以旋转你想调整的角度
meshc(有等高线,直接在程序里改一下,放在注释后了):
contourf语法(等高线图):
mesh(调整角度后的mesh三维曲面的剖面图):
情况二:
x,y,z 这三组数据没有一个明显的关系式,比如是三维的矩阵或者是三个向量。这三组数据一一对应,我是做实验提取出来的数据,就可以用这个画图
clc;
x=A(:,1);y=A(:,2);z=A(:,3);%这里的A是做实验提取出来的A矩阵(3*n)
tri = delaunay(x,y);
trisurf(tri,x,y,z);
shading interp%绘制三维曲线图的颜色
还有一些绘制三维绘图的方法没有一一列举,后期会继续更新这个部分!
大家如果有啥问题可以在底下留言或者私信我!
第一次写,如果有啥问题,希望大家批评指正!
愿大家都不会被学习所困扰!