Verfasst am: 20.04.2015, 18:21
Titel: Interpolation von Temperaturen auf vorliegende Koordinaten
Hallo,
nehmen wir an ich habe eine beliebige Form (z.B. eine Kartoffel). Ich verfüge über alle Punkte (x-,y-,z-Koordinaten) um die Form der Kartoffel zu beschreiben. An einigen Punkten habe ich eine Temperatur gemessen. Meine Frage ist wie ich jetzt die Temperaturen an den anderen Punkten auf der Kartoffel bekomme und zwar möchte ich zwischen meinen Messstellen linear interpolieren (3d).
Triscatteredinterp habe ich bereits ausprobiert. Für die Methode linear und natural bekomme ich teilweise nur nan werte. Für die Methode nearest bekomme ich überall temperaturen allerdings nehme ich an, da die messstellen weit entfernt liegen setzt er für die Punkte die den Temperaturpunkten benachbart sind dieselben temperaturen an. Er interpoliert also hier nicht über die oberfläche hinweg.
Anschaulich die Ausgangssituation:
Gesucht interpolierte werte für nan.
Punkte x y z T
Wert Wert Wert Wert nan
Wert Wert Wert Wert nan
Wert Wert Wert Wert nan
Wert Wert Wert Wert Wert
Wert Wert Wert Wert nan
Wert Wert Wert Wert nan
Wert Wert Wert Wert nan
Wert Wert Wert Wert Wert
Wert Wert Wert Wert nan
Wert Wert Wert Wert Wert
das Problem ist, dass ich selbst nicht weiß wie ich das Problem angehen soll, da es sich ja im Prinzip um eine Interpolation entlang einer, durch die Koordinaten, aufgespannten Fläche handelt. Das reinladen er Daten ist kein Problem, sieht wie in der Veranschaulichung aus. Ich brauchte eben jetzt die nan werte interpoliert weiß jedoch nicht wie ich diese bekomme.
da du dich ja weigerst beispieldaten und code zu liefern poste ich jetzt mal mein beispiel zu triscatter..
Code:
%% mit scatteredInterpolant
x=1:10;
y=1:10;
z=1:10;
[X,Y,Z]=meshgrid(x,y,z);
V=3*X+Y.^2./Z;
V2=V;
V2(randi(numel(V2),1,200))=nan;
Methodscint={'linear','nearest','natural'};
Methodscext={'linear','nearest','none'};
for ll=1:numel(Methodscext) for kk=1:numel(Methodscint)
F = scatteredInterpolant(X(~isnan(V2)),Y(~isnan(V2)),Z(~isnan(V2)),V2(~isnan(V2)),Methodscint{kk},Methodscext{ll});
V3.(Methodscint{kk}).(Methodscext{ll})=F(X,Y,Z);
end end
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.