Verfasst am: 20.05.2014, 12:11
Titel: Probleme mit contourf und griddata
Hallo zusammen,
da das hier mein erster Post ist, hoffe ich nichts übersehen zu haben.
Ich versuche schon seit einer gewissen Zeit einen 2D Plot von Messdaten mit contourf zu erzeugen. Dazu lese ich ein CSV-File ein und weisen dann verschiedenen Vektoren (hier X,Y,Z) einzelne Spalten der Datei zu.
Jetzt würde ich gerne Z als gefüllte Contour über X-Y darstellen.
Mein Code sieht dafür folgender Maßen aus:
Dabei habe ich in X-Richtung (beam(:,1)) teilweise bis zu 100 Schritte aufgenommen.
Bei beiden Methoden erhalte ich jedoch immer einen "gestückelte" Darstellung, obwohl ich eine mehr oder weniger kreisrunde Fläche erwarten würde.
Ich habe beide Plots einmal angehangen.
und wie muss man nun die Einleseroutine und den ursprünglich geposteten Code miteinander verknüpfen?
Bitte möglichst ein komplettes Beispiel zur Verfügung stellen.
% Ab hier soll geprüft werden, ob versch. Z-Werte vorhanden sind, da je die Plots für einen Z-Wert erstellt werden sollen
for i=1:n(1) % Positionen der versch. Z-Werte in der Datei um Einlesebereich zu definieren
I_u=find(M(:,3)==b(i),1, 'first');
I_o=find(M(:,3)==b(i),1, 'last');
if test==0
steps=I_o-I_u;
part=linspace(I_u,I_o-1,I_o-I_u);
% mehrere Z-Werte gefunden? Dann wird nur jeweils ein Teil von M in beam gespeichert
beam=(M(part,:));
for j=1:m
Index_unten=find(M(:,2)==aa(j),1, 'first');
Index_oben=find(M(:,2)==aa(j),1, 'last');
ZZ=zeros([Index_oben-Index_unten+1],m(1));
ZZ(:,j)=M([Index_unten:Index_oben],4);
end else
beam=M;
for j=1:m
Index_unten=find(M(:,2)==aa(j),1, 'first');
Index_oben=find(M(:,2)==aa(j),1, 'last');
ZZ(:,j)=M([Index_unten:Index_oben],4);
end end
leer=find(beam(:,4)>-10);
z=beam(:,4);
% z(leer)= 0;
mir ist aufgefallen, dass in meiner Datei sich die Werte für X und Y wiederholen, da diese mehrfach abgetastet werden.
Jedoch bleibt der Plot auch "streifig", wenn ich vorher eine Mittelwertbildung durchführe, sodass jeweils für jede Position nur ein Wert für X,Y und Z übergeben werden.
Leider habe ich also noch immer keine Idee woran es eigentlich scheitert.
sorry - ich hatte diesen Thread aus den Augen verloren.
Ich würde dich bitten, einen größeren Datensatz anzuhängen. Dieser hat nach Elimination doppelter Datenpunkte nur vier Datenpunkte, und da kann man einfach kein vernünftiges Bild erwarten.
Eine Möglichkeit ist, dass der Renderer das Problem macht. Probiere
Für mich sind die Visualisierungen nach Ansicht der Daten im Bereich dessen, was zu erwarten ist. griddata produziert dabei die optisch ansprechenderen Ergebnisse.
Du könntest höchstens noch nachsehen, ob die interpolierten Werte jeweils mit dem übereinstimmen, was angesichts der Werte im Umfeld zu erwarten ist. Es würde mich aber sehr wundern, wenn dem nicht so wäre.
Grüße,
Harald
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.