在matlab进行曲面插值后,得到插值曲面却无法进一步对数据进行校验,通常插值后需要进行交叉验证,评价算法优劣,苦苦搜寻没有找到资料,索性自己编写以griddata,抛砖引玉函数插值曲面后进行说明,抛砖引玉其他可以类推。
在使用griddata函数前,需要对数据进行网格化,所谓网格化就是分别对坐标轴x、y方向上根据最大/小值和间隔进行尺度均匀划分,尺度划分函数可用meshgrid,示例:
datax 为型值点的x坐标; datay 为型值点的y坐标; dataz 为型值点的数值;三者维数相同。
% 按照间隔0.1网格化x、y坐标
[X,Y]=meshgrid(min(datax):0.1:max(datax),min(datay):0.1:max(datay));
%查找要查询数据的x、y位置
xnumber = find( X(1,:) == datax(n));
ynumber = find( Y(:,1) == datay(n));
% 剔除要查询的数据
datax(n) = [];
datay(n) = [];
dataz(n) = [];
% 曲面线性插值