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 eines Kennfeldes

 

Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2009, 19:36     Titel: Extrapolieren eines Kennfeldes
  Antworten mit Zitat      
Hallo Leuten

ich habe ein echt riesiges Problem, ein Kennfeld zu extrapolieren. Ich habe grundsätzlich 3 Vektoren (x,y,z) mit einer Anzahl an Messpunkten. Mit der Funktion "griddata" kann ich auch erstmal ein Kennfeld erstellen, dass allerdings nur interpoliert ist.
Ich bin auch nach langer Suche nicht auf eine passende Antwort gestoßen, wie man in diesem Fall eine Extrapolation durchführen kann und wäre wirklich dankbar, wenn mir jemand einen Tipp geben kann.
Hier ist mal mein m-File, mit dem ich verschiedene Sachen ausprobiert habe (die ersten beiden Kennfelder sind aus Testzwecken mit einer z-Matrix versehen):
Code:

figure (1)
x=[1 2 4];
y=[1 2 3];
z=[0 1 2;2 3 4;5 6 7];
[X,Y]=meshgrid(0:0.5:4,0:0.5:4);
Z=interp2(x,y,z,X,Y,'cubic');
surf(X,Y,Z)
figure(2)
ZI=interp2(x,y,z,X,Y,'spline');
surf(X,Y,ZI)

figure(3)
x=[1 2 3 2 5 6 8];
y=[1 2 3 1 5 6 1];
z=[1 4 7 5 4 8 9];
[X,Y]=meshgrid(0:0.5:4,0:0.5:4);
Z=griddata(x,y,z,X,Y,'linear')
surf(X,Y,Z)
figure(4)
ZI=interp2(X,Y,Z,X,Y,'linear','extrapval');
surf(X,Y,ZI)

Bis Figure (4) geht alles wunderbar, und im Prinzip wird das Kennfeld in Figure (2) auch extrapoliert (mit der spline-Funktion geht das, mit den anderen nicht). Figure (3) gibt mir das Kennfeld mit der griddata-Funktion. ABer das kann ich einfach nicht bis an die Grenzen des meshgrids X,Y ausweiten. Die "extrapval" Funktion geht bei mir auch nicht, aber keine Ahnung warum. Vielleicht habe ich die auch falsch verstanden. Aber auch ohne sie klappt der Ablauf in Figure(4) nicht.

Wenn mir jemand helfen kann, vielen vielen Dank.


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2009, 11:09     Titel:
  Antworten mit Zitat      
Da bisher leider niemand eine Idee gehabt hat, wollte ich mal mitteilen, wie ich das gemacht habe, falls jemand ein ähnliches Problem hat.

In Matlab direkt habe ich keine vernünftige Extrapolation (außer nearest und spline) gefunden. Bin dann auf "Mathworks" auf zwei nützliche Funktionen gestoßen, mit denen man ganz gut extrapolieren kann.
Die Funktion inpaint_nans http://www.mathworks.com/matlabcentral/fileexchange/4551 bietet viele Methoden, um z.B. die "NaN" Werte in der Ergebnismatrix zu füllen. Dazu einfach das m-file runterladen und in den Workspace kopieren. Die Funktion kann dann wie gewohnt genutzt werden:
Code:
Z_neu=inpaint_nans(Z_alt,method)
Als Methode kann man zwischen 5 Varianten wählen (1-5).
Eine weitere gute Funktion ist "Gridfit" http://www.mathworks.com/matlabcentral/fileexchange/8998. Diese funktioniert ähnlich wie griddata, nur dass gleichzeitig extrapoliert wird. Hier gibt es sehr viele Optionen, mit denen das errechnete Kennfeld bearbeitet werden kann.
Code:
g = gridfit(x,y,z,xnodes,ynodes,Options);

Die Optionen sind ausführlich im m-file dokumentiert.
Unbedingt immer in den Vorspann des m-files sehen, um die genaue Definition der Funktionsgrößen zu verstehen. Besonders die "nodes" sind häufig nicht wie gewohnt als meshgrid vorzugeben.

Also, ich hoffe, das hilft jemandem weiter. Gut ist übrigens auch noch die Funktion interpne.
 
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.