Arrays 散乱数据插值
我有一组数据,例如:Arrays 散乱数据插值,arrays,matlab,matrix,interpolation,Arrays,Matlab,Matrix,Interpolation,我有一组数据,例如: X Y Z 1 3 7 2 5 8 1 4 9 3 6 10 我想为X=2.5和Y=3.5插入Z。我该怎么做?我不能在这里使用interp2,因为X和Y不是严格单调的(递增或递减)。这似乎就是您要寻找的函数: z = griddata( [1 2 1 3], [3 5 4 6], [7 8 9 10], 2.5, 3.5, 'nearest' ) 当前执行散乱数据插值的首选方法是通过对象类: >> F = scatteredInterpolant([
X Y Z
1 3 7
2 5 8
1 4 9
3 6 10
我想为X=2.5
和Y=3.5
插入Z
。我该怎么做?我不能在这里使用interp2
,因为X
和Y
不是严格单调的(递增或递减)。这似乎就是您要寻找的函数:
z = griddata( [1 2 1 3], [3 5 4 6], [7 8 9 10], 2.5, 3.5, 'nearest' )
当前执行散乱数据插值的首选方法是通过对象类:
>> F = scatteredInterpolant([1 2 1 3].',[3 5 4 6].',[7 8 9 10].','linear') %'
F =
scatteredInterpolant with properties:
Points: [4x2 double]
Values: [4x1 double]
Method: 'linear'
ExtrapolationMethod: 'linear'
>> Zi = F(2.5,3.5)
Zi =
6.7910
替换语法
>> P = [1 3 7; 2 5 8; 1 4 9; 3 6 10];
>> F = scatteredInterpolant(P(:,1:2),P(:,3),'linear')
有关
scatterdinterpolant
优于griddata
的优点,请参阅。除了句法上的差异,两个主要的优势是外推和自然邻域插值。如果要使用相同的插值对象插值新数据,则还具有重用创建插值对象时计算的三角剖分的性能优势。是的,这是可行的。谢谢。这不可能用线性插值吗?因为当我输入z=griddata([1 2 1 3],[3 5 4 6],[7 8 9 10],[2.5,3.5,'线性')时,我得到的答案是Nanso可能你的数据不是线性的?