WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Extrapolieren von Messwerten und Darstellung als Fläche

 

Lisa96
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 29.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2020, 13:43     Titel: Extrapolieren von Messwerten und Darstellung als Fläche
  Antworten mit Zitat      
Hallo ihr Lieben, Smile

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 Smile.

Code:
% Das ist mein Programm.
x_mess = [1       2       3       4       5       6];
     
y_mess = [20      100     180      260     340     420];
 
z_mess = [43    47  49  51  49  48
         45    46  48  52  46  48
         43    47  48  49  52  48
         46    46  48  49  50  48
         48    46  48  49  50  49
         48    43  49  50  49  48];
   
 
[X_mess,Y_mess,Z_mess] = meshgrid(x_mess,y_mess,z_mess);
 
[x_int,y_int] = meshgrid(1:0.1:6, 20:0.1:420);
 
[X,Y,Z]=griddata(x_mess,y_mess,z_mess,x_int,y_int,'cubic');
 
surfc(X,Y,Z,'LineStyle','none')



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.) Sad

Hoffe, dass mein Text einigermaßen verständlich ist.

Liebe Grüße
Lisa
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.12.2020, 14:38     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lisa96
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 29.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2020, 15:40     Titel:
  Antworten mit Zitat      
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.

Code:
%Code mit interp2
x_mess = …
y_mess = …
z_mess = …

[X_mess,Y_mess,Z_mess] = meshgrid(x_mess,y_mess,z_mess);
 
[x_int,y_int] = meshgrid(0:0.1:7, 0:0.1:500);
 
z_int= interp2(X,Y,Z,x_int,y_int);
 
surfc(x_int,y_int,z_int,'LineStyle','none')


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! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.12.2020, 15:53     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
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.

Code:
x_mess = [1       2       3       4       5       6];
     
y_mess = [20      100     180      260     340     420];
 
z_mess = [43    47  49  51  49  48
         45    46  48  52  46  48
         43    47  48  49  52  48
         46    46  48  49  50  48
         48    46  48  49  50  49
         48    43  49  50  49  48];

[x_int,y_int] = meshgrid(0:0.1:7, 0:0.1:500);
 
z_int= interp2(x_mess,y_mess,z_mess,x_int,y_int, 'makima');
surfc(x_int,y_int,z_int,'LineStyle','none')


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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lisa96
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 29.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2020, 16:06     Titel:
  Antworten mit Zitat      
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 Very Happy

lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.