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

Interpolationsproblem

 

hansolo_der_III
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 19.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2013, 18:29     Titel: Interpolationsproblem
  Antworten mit Zitat      
Hi Leute,
seit einigen WOCHEN folgendes Problem. Von einem Strömungsmodell genauer gesagt handelt es sich hierbei um eine Welle in 2D (wie am Strand). Aus dem Modell habe ich drei Vektoren, also die (x,z) Koordinaten und die dazugehörige Geschwindigkeit (vel_in_x). ausgelesen. Insgesamt sind es über 270.000 Datenpunke. Nun gut scatter(x,z,wert,vel_in_x) hilft mir schon mal die Daten zu sichten. Nun soll/will ich die Daten in Form eines interpolierten conturf plotes präsentieren.

Nun leider gibt es beim interpolieren der Punktdaten mit griddata erhebliche Probleme and den Randbereichen da es sich bei der Welle. Wie ich nach längerem Recherchieren herausgefunden habe um eine konkave Hülle oder auch um eine alpha-shape handeln muss. Deshalb kommt es in den Randbereichen in denen die Welle bricht zu „falschen“ interpolierten Werten. Nun will ich diese Stellen wegschneiden. Jetzt hatte ich die Idee mit convhull die „Umhüllende/polygon“ der Punktdaten meiner Welle zu ermitteln und die falschen Werte „wegzuschneiden“. Dies funktioniert auch aber die Umhüllende ist zu ungenau und lässt immer noch falsche Interpolierungswerte übrig. Mit hullfit, gibt es im FEX, funktioniert das ganze etwas besser aber ist noch nicht ideal. Die beste Funktion ist wäre ASHAPE da sie eine sehr präzise umhüllende bildet. Nur dummerweise habe ich es noch nicht geschafft die Indizes auf meine Daten anzuwenden, da ashape die Inputdaten irgendwie umschriebt…
Hier ist erstmal mein Code:

Code:
clear all
   % ausgelesene werte (sind meine readings sind zu gro? also rand)
x= rand(1000); % x werte
z= rand(1000);  % z werte
vel_in_x = rand(1000);% und Geschwindigkeiten
hold on
plot(x(k), z(k))
plot(x, z,'+')
scatter(x,z,1,vel_in_x)
hold off
%-----------------------
%entwerder
k=convhull(x,z) % "Umhüllung" der Welle(Punkdaten) durch das Polygon viel zu ungnau
%oder
%k=hullfit(testx,testz,0.01); % "Umhüllung" der Welle(Punkdaten)durch das Polygon besser aber immer noch zu ungenau; habe ich im FEX gefunden
%oder
%p = ASHAPE(x,y,0.1) % Umhüllung" der Welle(Punkdaten)perfeckt --> aber ich
%schaffe es nicht die Indizes auf meine Daten anzuwenden
%-----------------------
   xi=min(x):0.5:max(x); % Gitterabstände
   yi=min(z):0.5:max(z); % Gitterabstände
   zi=griddata(x,z,vel_in_x,xi,yi'); % Interpoliert alle Punktdaten
   [xx,yy]=meshgrid(xi,yi); % aufbauen des Grids
   in=inpolygon(xx,yy,x(k),z(k));  %Polygon auf das der Datesatz zugeschnutten werden soll
    zi(~in)=NaN; % bereiche auserhalb des Polygons werden NaN gesetzt

figure
contourf(xi,yi,zi);
 


Nun gut es ware wirkich ganz toll wenn ihr irgendelche Ideen hättet (ich nahe der Verzweiflung) wie ich meine Daten von den falschinterpolierten Werten befreie… oder wie ich die Indizes für die Inputdaten für x(k) z(k) aus ashape herausbekomme…

Vielen Dank

han solo der III.
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 24.07.2013, 15:39     Titel:
  Antworten mit Zitat      
Wochenlanges Problem

Keiner meldet sich hier

-> Technischen Support kontaktieren.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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 - 2025 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.