我有一組數據,例如:散亂數據插值
X Y Z
1 3 7
2 5 8
1 4 9
3 6 10
我想插Z
爲X=2.5
和Y=3.5
。我該怎麼做?這裏我不能使用interp2
,因爲X
和Y
不是嚴格單調的(增加或減少)。
我有一組數據,例如:散亂數據插值
X Y Z
1 3 7
2 5 8
1 4 9
3 6 10
我想插Z
爲X=2.5
和Y=3.5
。我該怎麼做?這裏我不能使用interp2
,因爲X
和Y
不是嚴格單調的(增加或減少)。
好像griddata
的功能,你正在尋找:
z = griddata([1 2 1 3], [3 5 4 6], [7 8 9 10], 2.5, 3.5, 'nearest')
當前優選的方式進行散亂數據插值是通過scatteredInterpolant
對象類:
>> 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')
對於的優點超過griddata
請參閱this MathWorks page on Interpolating Scattered Data。除語法差異之外,兩個主要優點是外插和自然鄰居內插。如果要使用相同的插值插值新數據,那麼在創建插值對象時,您還可以重複使用計算的三角測量的性能優勢。
是的,這個工程。非常感謝。這是不可能使用線性插值? – user3222217
,因爲當我輸入時 z = griddata([1 2 1 3],[3 5 4 6],[7 8 9 10],2.5,3.5,'linear') 我得到的答案是Nan – user3222217
所以也許你的數據不是線性的? – Adiel