Verfasst am: 18.10.2010, 22:32
Titel: Verzerrungen bei Surf-Dartstellung
Hallo,
bei der Darstellung einer 3D Eigenform bekomme ich immer Verzerrungen. Verschiedene griddata methoden hab ich schon probiert, leider ohne Erfolg.
Kennt jemand die Ursache und/oder die Lösung dieses Problems
% Interpolation der Daten
Eigenform{8,jj}=griddata(Eigenform{4,jj}(:,1),Eigenform{4,jj}(:,2),Eigenform{4,jj}(:,3),Eigenform{6,jj},Eigenform{7,jj},'linear');
% Grafik mesh(Eigenform{6,jj},Eigenform{7,jj},Eigenform{8,jj});
Verfasst am: 19.10.2010, 00:12
Titel: Re: Verzerrungen bei Surf-Dartstellung
Hallo Speckdrum,
kannst Du bitte noch beschreiben, wo der Unterschied zwischen dem Bild und Deinen Erwartungen ist? "Ich bekomme Verzerrungen" ist noch nicht klar genug.
Klar, kein Problem
Die kleinen Peaks im Tal der Form stören mich. Ich verstehe nicht, woher er diese nimmt, da sich in den Peaks keine Datenpunkte befinden. Wenn ich andere Methoden für griddata nehme, bekomme ich auch allerhand Verzerrungen.
Gibt es eine Möglichkeit meine Z-Matrix zu harmonisieren mit einem Moving Average oder Ähnlichem? Das wäre wahrscheinlich die Lösung, da ich immer Messergebnisse habe, die ausschlagen.
Anbei ein paar Beispiele meiner Probleme.
Methode 'nearest' Unschön, aber ohne Ausreißer
Methode 'v4' Eigentlich ok, aber mit mega Ausreißer
Methode 'cubic' Da ich nicht an allen Stellen Messwerte habe, kommt die Wulst ....
es sind also die Peaks, die Dich im Bild im ersten Posting stören.
Die befinden sich nur am Rand, oder? Da scheint also etwas nicht korrekt zu funktionieren, Eine Idee wäre es, eine weitere Zeile (oder Spalte) am Rand einzufügen und sie vor dem Plot wieder zu entfernen.
Natürlich könnte man aber auch die numerischen Ursachen für diese Peaks suchen.
Ich hab mir nochmal Gedanken gemacht und bin selbst auch eine Lösung gekommen.
Bei der Interpolationsmethode 'nearest' sind keine Ausreißer drin. Die daraus gewonnene Z-Matrix habe ich erst Zeilenweise, dann Spaltenweise mit dem Befehl smooth bearbeitet.
Code:
% Glätten der Fläche
dimEigenform=size(Eigenform{8,jj}) for aa=1:10 for ii=1:dimEigenform(1);
Eigenform{8,jj}(ii,:)=smooth(Eigenform{8,jj}(ii,:));
Eigenform{8,jj}(:,ii)=smooth(Eigenform{8,jj}(:,ii));
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.