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

Surf Plot mit Anzeigefehler

 

cmueller
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2010, 15:50     Titel: Surf Plot mit Anzeigefehler
  Antworten mit Zitat      
Hi Leute!

Ich hab hier einen Plot mit nem Haufen an Werten. An sich funktioniert alles. Jedoch sind bei der Ansicht lauter weiße Flecken im Bild.
Sie verschwinden wenn ich reinzoome, haben von ihrer Wertigkeit nichts mit der Skala zu tun (ist auf dem Bild schlecht, hätte ne andere colormap nehmen sollen).

Die weißen Streifen erscheinen exakt so, wenn die Farbskala kein weiß enthält.

Kann mir jemand weiterhelfen?

Ist das ein Problem meines PC's?


P.S. Die Labels sind falsch.

Edit: habs grad auf meinem Mac noch getestet, da siehts noch schlimmer aus.
Private Nachricht senden Benutzer-Profile anzeigen


cmueller
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2010, 12:33     Titel:
  Antworten mit Zitat      
*push*
Hat keiner eine Idee was da passiert sein könnte?

Ich verwende Matlab R2008b

Code:
 


surf(rpmRecAve(1:end),f_vec(n_fa:n_fe), abs(DatRec1_sort(n_fa:n_fe,1:end)'))');

wobei:
rpmRecAve <1x512 double>
f_vec <1x4096 double>
DatRec1_sort <4096x512>
 


Zuletzt bearbeitet von cmueller am 22.10.2010, 12:44, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.10.2010, 12:39     Titel:
  Antworten mit Zitat      
Hallo CMueller!

Es wäre schon notwendig, dass Du beschreibst, wie Du die Grafik erzeugst. Wir können hier nur ein Bild sehen und wissen nicht einmal, was Du genau erwartest.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
cmueller
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2010, 12:46     Titel:
  Antworten mit Zitat      
Ich erwarte, dass der Anzeigefehler in der Grundansicht nicht vorhanden ist.
Wie gesagt verschwinden die weißen Streifen sobald mein reinzoomt und die Farbe gibt den korrekten Wert wieder.

Ich habe ihm nicht einprogrammiert, dass er bei einem bestimmten Zoomfaktor nur noch die Hälfte der Daten anzeigen soll, das verwundert mich ja nur.

http://img831.imageshack.us/img831/8783/zoomfehler.jpg

Es handelt sich hierbei um ein und das selbe Diagramm. Maximiert auf Vollbild sind weniger der Streifen zu sehen, und wenn man noch mit der Lupe reinzoomt verschwinden sie komplett.
Als vergleich dazu das Bild in der "Normalen" größe - in der ich es verwenden will.

Edit: Wenn man den Blickwinkel ändert verschwinden die Streifen ebenfalls sofort.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.10.2010, 14:19     Titel:
  Antworten mit Zitat      
Hallo Cmueller,

Wie änderst Du denn den "Blickwinkel"?
Welchen Renderer verwendest Du?
Welche EdgeColor, LineStyle, LineWidth, EraseMode, FaceColor, MarkerEdgeColor, MeshStyle, EdgeLighting hat das SURF-Objekt?

Ist es flach oder hat es eine Krümmung, die vielleicht durch Rundungsfehler in den VertexNormals zu den weißen Punkten führen könnte? Wenn es flach ist, weshalb verwendest Du nicht IMAGE zur Darstellung? Wenn es gekrümmt ist, hast Du schon mit
Andres' SURFO http://www.mathworks.com/matlabcentral/fileexchange/23882 versucht?

Mit den wenigen Informationen, die Du angibst, können wir wirklich nur wild raten.

Nebenbei kann man die angezeigte Zeile noch vereinfachen:
Zitat:
Code:
surf(rpmRecAve(1:end),f_vec(n_fa:n_fe), abs(DatRec1_sort(n_fa:n_fe,1:end)'))')

==>
Code:
surf(rpmRecAve, f_vec(n_fa:n_fe), abs(DatRec1_sort(n_fa:n_fe, :)))

Wenn ich die überzählige Klammer richtig entfernt habe, heben sich die beiden TRANSPOSE-Operatoren gegenseitig auf.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
cmueller
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2010, 14:37     Titel:
  Antworten mit Zitat      
das mit dem transponse hab ich zwischenzeitlich auch noch gesehn, der code stammt ursprünglich nicht von mir und hatte noch einige andere überflüssigen erweiterungen.

Den Blickwinkel ändere ich ganz einfach mit dem "Rotate 3D" Tool, oder
Code:


Von Renderer hab ich bisher noch nichts gelesen. und die restlichen Einstellungen sind alle von mir unberührt und sollten einen Default Wert haben.

Flach, Krümmung? Also das ist ein dreidimensionales gebilde was von "oben" betrachtet wird.

Dieses surfo könnt ich zwar noch ausprobieren, aber das Programm soll später auf anderen Rechnern auch laufen ohne, dass man sich zusätzliche software vorher laden muss.

EdgeColor - "none"
LineStyle - "none"
LineWidth - 0.5
EraseMode - find ich nicht in meinem Inspector
FaceColor - "interp"
MarkerEdgeColor - "none"
MeshStyle - "both"
EdgeLighting - "none"


EDIT: der fehler tritt mit surfo auch auf
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.10.2010, 15:40     Titel:
  Antworten mit Zitat      
Hallo Cmueller,

versuche mal:
Code:
set(SurfH, 'FaceColor', 'flat');

Und versuche mal alle Renderer aus:
Code:

figure(gcf);
set(gcf, 'Renderer', 'painters');
pause(1);
set(gcf, 'Renderer', 'zbuffer');
pause(1);
set(gcf, 'Renderer', 'opengl');
 


Ich habe sein Matlab 6.5 bis mindestens Matlab 2009a Probleme mit 2D-Diagrammen im OpenGL-Renderer: Bei eingeschaltetem Rahmen um die Diagramme ("axes('Box', 'on')" ist bei etwa jedem 40. Diagram die obere Linie der Box unsichtbar. Es hat ähnlich wie bei Dir geholfen, nicht exakt gerade auf das 2D-Bild zu schauen, sondern es um 0.0001 Grad zu rotieren. Das macht zwar optisch auch auf einem 600 dpi-Drucker keinen Unterschied, da alle Änderungen kleiner als ein Pixel sind, aber der Renderer verhaspelt sich nicht mehr - ist dafür aber ein paar Prozent langsamer.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
cmueller
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2010, 15:55     Titel:
  Antworten mit Zitat      
FaceColor verändern bringt mich nicht weiter

aber der zbuffer renderer korrigiert es!
opengl scheint der bösewicht zu sein
painters zerschießt meinen PC bzw bringt matlab zum abstürzen

danke für die hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.10.2010, 17:04     Titel:
  Antworten mit Zitat      
Hallo cmueller,

Wenn OpenGL das Problem ist, gibt es eine Menge FEATUREs um Bugs zu umgehen, z.B.:
Code:
feature('UseGenericOpenGL', 0)  % oder 1

Auf den MathWorks-Seiten gibt es noch mehr dieser FEATURE-Tricks zu OpenGL-Bugs, ich finde aber gerade den Link nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
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.