matlab 根据三维数据可视化

主要使用了matlab里meshgrid、surf和shading。
MATLAB绘图参考

meshgrid 生成栅格

meshgrid(x,y)由向量x和向量y通过复制的方法产生绘制图形时所需的栅格数据点矩阵X、Y。该命令产生栅格数据方法为:将向量X作为矩阵X的一个行向量,并将向量X复制length(y)次,以构成栅格数据点X矩阵;同样,将向量y作为矩阵Y的一个列向量,并将向量y复制length(x)次,以构成栅格数据点Y矩阵。

linspqce 控制坐标尺度

通过meshgrid这样生成的都是矩形区域,即根据Z轴涂色的基础就是底层是个矩形,绘制的是规则图像,如果绘制不规则图像,就要使用linspace函数,linspace函数形式为linspace(X1,X2,N),以X1为起始元素,X2为结尾元素,生成等间距的N个元素的列向量,其实整个生成过程都是通过插值完成的,N代表X1和X2之间插多少个数据。
[X,Y] = meshgrid(linspace(min(aa),max(a),300),linspace(min(b1),max(b),300));

TriScatteredInterp 将X、Y和Z的数据对应

插入二维或三维散点数据
https://blog.csdn.net/qq_30815237/article/details/86600840

surf 绘制三维曲面

通过上步绘完x和y的栅格后,就需要根据Z轴涂色以观察3维效果。Surf的格式为surf(x,y,z),其中X和Y就是上步骤中生成的栅格数据,Z则是X和Y对应的Z轴数据,以此为根据涂色。

但是涂什么颜色就要靠colormap和shading

surf(X,Y,Z);
shading interp;
colormap gray;

axis off  %使坐标轴消失

view(az,el)定义呈现的视角

print 保存

  print(gcf,'-djpeg','-r9',strcat(savepath,imageName));

其他方法

离散数据

plot3

scatter3(X,Y,Z)

创建三维散点图。使用 sphere 定义向量 x、y 和 z。
https://ww2.mathworks.cn/help/matlab/ref/scatter3.html

引用

https://blog.csdn.net/yongchunaq/article/details/37829867
https://ww2.mathworks.cn/help/matlab/creating_plots/types-of-matlab-plots.html
https://ww2.mathworks.cn/help/matlab/ref/scatter3.html

你可能感兴趣的:(Learning,pytorch,深度学习,人工智能)