散乱体数据的插值

使用griddata函数可以将散乱体数据规则化为\(M\times N\times L\)的网格数据。语法格式为:[大谦MATLAB,dqmatlab点com]

vq=griddata(x,y,z,v,xq,yq,zq) 对于给定的散乱数据x,y,z,v,计算等间隔排列的

vq=griddata(___,method) 指定插值方法。method 可以是 'linear'、'nearest'、'natural'、'cubic' 或 'v4'。默认方法为 'linear'。关于各插值算法,1.1.2小节有比较详细的讨论。

下面的代码首先生成50个三维散乱空间点,计算各点的度量值v。用meshgrid函数生成等间隔排列的三维网格,用griddata函数进行插值,计算三维网格上各节点处的度量值vq。然后绘散乱点的图形,用规则网格数据绘制值为0.5的等值面。

code.matlab
>> x=2*rand(50,1) - 1;
>> y=2*rand(50,1) - 1;
>> z=2*rand(50,1) - 1;
>> v=x.^2 + y.^2 + z.^2;
>> d=-1:0.2:1;
>> [xq,yq,zq]=meshgrid(d,d,d);
>> vq=griddata(x,y,z,v,xq,yq,zq);
>> plot3(x,y,z,'*')
>> hold on
>> isosurface(xq,yq,zq,vq,0.5)
>> camlight right

生成图4-3。

Document Image
\[\]

图4-3 散乱体数据规则化后绘等值面