Verfasst am: 29.12.2020, 12:43
Titel: Extrapolieren von Messwerten und Darstellung als Fläche
Hallo ihr Lieben,
ich bin ein ziemlicher MatLab-Newbie und benötige Hilfe beim Extrapolieren sowie dem Darstellen von Messdaten.
Mein Datensatz: Ich habe gleichmäßig verteilte Messpunkte in einem Raum (mit X-und Y-Koordinaten, die Höhe spielt keine Rolle).
Zu jedem Messpunkt habe ich einen Messwert Z (als Beispiel Temperatur, als Z-Koordinate).
Mein Ziel: Die Darstellung der Messwerte in einem 2-D-Diagramm mit X-und Y-Achse interpoliert als auch extrapoliert (in einer Art Heat Map).
Mein aktueller Stand: Interpoliert habe ich die Daten (3-dimensional) darstellen können (mit Hilfe von meshgrid und griddata, siehe Code unten – Verbesserungsvorschläge erwünscht .
Meine Fragen: Wie geht man nun beim Extrapolieren vor? Gerne mit Beispiel.
Gibt es einen einfacheren Weg für das Interpolieren?
Ich habe auch gesehen, dass es Funktionen wie interp2 gibt. Allerdings ist mir schleierhaft, wie ich dies sowohl fürs Interpolieren und Extrapolieren mit meinen Werten anwenden kann. (Laut einem anderen Beitrag ist es auch nicht möglich mit griddata zu extrapolieren. Wie dann?)
P.S. Ich habe schon viele Threads zu diesem Thema durchgestöbert und mehrere Stunden an Recherche investiert, doch aufgrund mangelnder Kenntnisse sind meine Ergebnisse relativ ernüchternd. (Verzeiht mir auch bitte falsche Syntax etc.)
Hoffe, dass mein Text einigermaßen verständlich ist.
meine Frage hier: was willst du denn extrapolieren? Du gibst ja als x_int, y_int keine Daten außerhalb deines Messbereichs vor.
Für Extrapolation kannst du in der Tat interp2 verwenden. Aus der Doku:
Zitat:
Vq = interp2(___,method) specifies an alternative interpolation method: 'linear', 'nearest', 'cubic', 'makima', or 'spline'. The default method is 'linear'.
example
Vq = interp2(___,method,extrapval) also specifies extrapval, a scalar value that is assigned to all queries that lie outside the domain of the sample points.
If you omit the extrapval argument for queries outside the domain of the sample points, then based on the method argument interp2 returns one of the following:
Extrapolated values for the 'spline' and 'makima' methods
NaN values for other interpolation methods
Sprich, wenn du 'spline' oder 'makima' angibst, wird automatisch extrapoliert. Bei diesen Daten gibt es aber m.E. wie gesagt nichts zu extrapolieren.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Vielen Dank für die Antwort und deine Frage. Vielleicht lag da auch ein Verständnisproblem meinerseits vor.
Den Code 1 hatte ich mir für das Interpolieren überlegt. Also zur Abschätzung der Werte zwischen meinen Messpunkten im Raum.
Wenn ich jetzt die Werte außerhalb meines Messfeldes haben möchte (das Messfeld deckt z.B. nur die Mitte des Raumes ab und mich interessieren die theoretischen Werte um das Messfeld herum) dann gilt es zu extrapolieren, richtig?
Code:
% Beispiel [x_int,y_int] = meshgrid(0:0.1:7, 0:0.1:500);
Leider habe ich mit der Doku so meine Schwierigkeiten (Verständnis und Sprache). Den Code habe ich jetzt folgendermaßen nach interp2 geändert und das Ergebnis entspricht dem Code 1 aus dem Fragepost.
Wie bzw. wo kann ich nun mit 'Spline' und 'Makima' die Werte außerhalb des Messfelds extrapolieren? Ich bekomme leider immer wieder Fehlermeldungen, wenn ich mich nach der Doku richte und das in den Code einfüge.
Hoffe, ich habe das soweit richtig verstanden & Vielen Dank für die Hilfe bisher!
Leider habe ich mit der Doku so meine Schwierigkeiten (Verständnis und Sprache).
Was genau verstehst du denn an dem zitierten Absatz nicht?
Zitat:
Wie bzw. wo kann ich nun mit 'Spline' und 'Makima' die Werte außerhalb des Messfelds extrapolieren?
Du brauchst die Optionen nur hinten anzuhängen - so wie es auch in der Doku nachzulesen ist.
Zitat:
Ich bekomme leider immer wieder Fehlermeldungen
Wenn du Fehlermeldungen bekommst, dann poste sie bitte. Beim momentanen Code sollte die Fehlermeldung Unrecognized function or variable 'X' nicht erstaunen, weil X eben nicht definiert ist.
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ahh, super! Da hatte sich also der Fehler "eingeschlichen"...
Dann hat sich das Thema so weit erledigt!
Schwierigkeiten bezüglich der Doku liegen eher aufgrund der Englischen-Sprache vor. Aber jetzt funktioniert es ja
lg
Einstellungen und Berechtigungen
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.