1、需要注意的是,要将数据的NaN(空值)去掉。可以在matlab工作去查看,并去除。
2、数据处理由于我们的x、y轴数据,并不是1 、 2 、3等这样的整数排列的,所以必须利用原有的数据,重新构造三维数据。重构三维数据主要有两步:第一步:栅格化,用到meshgrid()函数第二步:插值,用到griddata()函数
3、画图这一步需要注意的是:选好网格间隔,网格间隔越小,精确度越高,相对应的,计算量越大,电脑性能要求越高。电脑性能不高的,可以跳大间隔,同时优化代码,清除画图用不了的变量。
4、%利用txt excel等大量x y z数据,化三维立体图%% 导入数据clear all;clc;clos髫潋啜缅e all;load xyzdata.mat;%导入的的数据应当去除NaN值%% 相关计算[a,~]=size(xRow);%x轴数据总共********行;xmax=max(xRow);%x轴数据最大值为**********xmin=min(xRow);%x轴数据最小值为********%下面两行是测试用的,便于设置间隔值%delta_x=xmax-xmin;%x轴范围宽度值为*****%delta_x/a;%z轴间隔大约为1.4796e-04,可以设置为0.01,如果想要更为精确,可以设置为0.001、0.0001[b,~]=size(yCol);%y轴数据为******ymax=max(yCol);%y轴数据最大值为******ymin=min(yCol);%y轴数据最小值为********%下面两行是测试用的,便于设置间隔值%delta_y=ymax-ymin;%轴范围宽度值为为******%delta_y/b;%y轴间隔大约为9.9876e-05,可以设置为0.01,如果想要根为精确,可以设置为0.001、0.0001%% 重构三维数据,画图%间隔为 0.05的时候,X Y数据为 *****×****, 电脑一般的,将间隔调大%间隔为 1的时候,X Y数据为 ***×***, 电脑 好的,将间隔调小[X,Y]=meshgrid(xmin:1:xmax,ymin:1:ymax);%将x、y轴网格化,重构用于画图x、y轴数据Z=griddata(xRow,yCol,z,X,Y);%插值,重构用于画图的Z轴数据clear a b xmax xmin ymin ymax xRow yCol z;mesh(X,Y,Z)