Die derzeit bevorzugte Art und Weise gestreute Daten Interpolation durchzuführen über die scatteredInterpolant
Objektklasse ist:
>> 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
Alternative Syntax,
>> P = [1 3 7; 2 5 8; 1 4 9; 3 6 10];
>> F = scatteredInterpolant(P(:,1:2),P(:,3),'linear')
Für die Vorteile von scatteredInterpolant
über griddata
siehe this MathWorks page on Interpolating Scattered Data. Zusätzlich zu syntaktischen Unterschieden gibt es zwei Hauptvorteile, nämlich Extrapolation und natürliche Nachbarinterpolation. Wenn Sie neue Daten mit demselben Interpolant interpolieren möchten, haben Sie auch den Vorteil, dass Sie die beim Erstellen des Interpolant-Objekts berechnete Triangulation erneut verwenden.
ja, das funktioniert. Danke vielmals. Ist es nicht möglich, dafür lineare Interpolation zu verwenden? – user3222217
weil, wenn ich betrete z = Rasterdaten ([1 2 1 3], [3 5 4 6], [7 8 9 10], 2,5, 3,5, 'linear') Die Antwort, die ich bekomme, ist Nan – user3222217
also vielleicht sind Ihre Daten nicht linear? – Adiel