Verfasst am: 01.12.2009, 10:02
Titel: Probleme mit contourf
Hallo Zusammen
Ich habe ein kleines Problem mit der Konturgrafikfunktion countourf (gleiches mit contour). Im Prinzip möchte ich resultate von CFD Simulationen in Matlab plotten. Das exportieren funktioniert gut, das einlesen auch, das ist alles noch ok. Den Code, den ich dafür verwende, ist:
Code:
% Importing data from CFX and plotting clearall, closeall % Hybrid values
veldat1 = importdata('vel299.csv');
% Zuweisen der einzelnen Komponenten (xc1, yc1, zc1: Koordinaten, % uc1: Geschwindigkeitsdaten
xc1=veldat1.data(:,1);
yc1=veldat1.data(:,2);
zc1=veldat1.data(:,3);
uc1=veldat1.data(:,4);
% Erzeugen des Mesh - arrays [xm,ym] = meshgrid(xc1,yc1);
% Dateninterpolation (anstatt griddata funktion)
F1 = TriScatteredInterp(xc1,yc1,uc1);
Wenn ich das jedoch so verwende, kommen furchtbare Konturgrafiken raus, welche mit dem Problem an sich nichts zu tun haben. Ich habe auch schon probiert, die Arrayzuweisung anders zu machen:
Gut dabei ist, dass die Grafiken in den Regionen, in denen Sie Werte hat, gut aussieht. Das Problem ist, dass die Grafikinformationen nicht mehr korrekt dargestellt werden (ist ja auch kein wunder, das meshgrid ist ja ein Quadrat, so wie es im obigen Beispiel erzeugt wird).
Wie kann man das am besten lösen?
Viele Grüsse
challenger
vel299.txt
Beschreibung:
Hier noch das .csv file, wenns jemand versuchen möchte. Muss man halt die extension wieder ändern, hat bei mir geklappt.
wenn ich das richtig verstehe, liegt das Problem darin, dass zusätzlich zu den korrekten Punkten Punkte gezeichnet werden, die gar nicht gezeichnet werden sollen. Die einfachste Möglichkeit sehe ich darin, diese Punkte auf NaN zu setzen. Beispiel:
Code:
x = -5:0.02:5;
y = -5:0.02:5;
[X, Y] = meshgrid(x,y);
Z = sqrt(25 - X.^2 - Y.^2);
Z(X.^2 + Y.^2 > 25) = NaN; % ich will nur Punkte mit X^2 + Y^2 < 25 contourf(x,y,Z)
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.