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

Waitbar loop plot

 

Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 09:55     Titel: Waitbar loop plot
  Antworten mit Zitat      
Hi
hab ein kleines Problem.
Ich bin grade dabei ein Programm zur Grafischen Darstellung von Messwerten zuschreiben.(Mit einer GUI)
Daten laden => Sortieren => Darstellung Auswählen => Zeichnen
Das funktioniert auch alles super.
Da ich jedoch über 100 Daten Sätze lade und sortiere wird einige Zeit benötigt um dem Benutzter dies anzuzeigen wollte ich nun eine waitbar einfügen.
Jetzt funktioniert mein plot nicht mehr, beim normalen Durchlauf.
Wenn ich jedoch Debug funktioniert er.
Habt ihr eine Idee?
Code:

function draw_grafik(hObject,eventdata)
h= guidata(hObject);

merker=0;
siFile= size(h.filename);
%negatives Offset
   
h.wb = waitbar(0,'Please wait...');        
       
for w= 1: siFile(1,2)
....
% Sortierung
....

% Zeichnen
    for k=1:13
        hold on;
        y=h.Data(w).Muenz(k).SortMess;        
        plot(h.grafik,vec(k),y,'o','MarkerSize',5,'color','green')
        %Achsenbeschriftung (Namen zusammen stellen)
        if merker ==0   %nur beim erstenmal Ausführen
            h.tick(k+1)= {h.Data(w).Muenz(k).Name};          
        end
    end
     merker =1;
     waitbar(w/siFile(1,2))
     
end
close(h.wb)

%Speichern der Struktur
guidata(h.Fig,h);

%Achsen Beschriften
setAxes(hObject,eventdata)
 


Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.11.2009, 10:23     Titel:
  Antworten mit Zitat      
Hallo,

man kann das ja nicht direkt reproduzieren, also bevor man sich groß Gedanken macht die Rückfrage: WAS funktioniert nicht?
Gibt es eine Fehlermeldung? Wenn ja, welche?
Passiert etwas unerwartetes? Wenn ja, was?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Themenstarter

Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 10:33     Titel:
  Antworten mit Zitat      
ja sorry hätte ich besser beschreiben sollen.
Es wird nur der letzte plot dargestellt das heißt der letzte (13) schleifen durchlauf von 'zeichnen'.
Alle anderen plots sind weg.
Dieser Fehler tritt auf sobald ich die Waitbar nur erzeuge, und sie noch nichtmal durchlaufen lasse.
Wenn ich jedoch die Schleifen im debug durch laufe funktioniert alles
=> Die Plots und Waitbar

Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.11.2009, 11:10     Titel:
  Antworten mit Zitat      
Hallo,

probier mal Aufrufe von
Code:

einzufügen (Verwendung siehe Doku).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Themenstarter

Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 11:17     Titel:
  Antworten mit Zitat      
Funktioniert nicht.
Hab an 3 stellen Probiert :
1. Direkt nach dem plot-Befehl
2. Nach der Plot-Schleife
3. Nach der gesammten Schleife vor 'close'

Die Koordinaten der Y-Aches flakern,
kann es sein das er mir den Plot immer wieder überschreibt,
trotz 'hold on'?

Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.11.2009, 11:26     Titel:
  Antworten mit Zitat      
Hallo,

wieder die Rückfrage: was funktioniert nicht? Werden die Plots nun gezeichnet, aber das Flackern stört, oder werden sie immer noch nicht gezeichnet?
drawnow sollte erfolgen, wenn die Aktualisierung erwünscht ist. Also z.B. in diesem Fall für jede Datei einmal. Nach jedem einzelnen plot-Befehl ist hier vielleicht zuviel des guten.

Versuche auch, den hold-Befehl aus der Schleife rauszubringen, z.B. so
Code:
axes
hold on
plot(rand(10,1))
plot(rand(10,1), 'g')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Themenstarter

Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 11:28     Titel:
  Antworten mit Zitat      
Es hat sich nicht verändert mit drawnow.
Das Flakern ist mir nur grade aufgefallen. Dieses passiert nur wenn ist
die Waitbar mit einfüge.

Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Themenstarter

Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 11:44     Titel:
  Antworten mit Zitat      
Hier einmal die zwei Plots einmal mit waitbar erzeugt und einmal ohne.

Gruss Fragewurm

Fehler.JPG
 Beschreibung:
mit Waitbar

Download
 Dateiname:  Fehler.JPG
 Dateigröße:  51.16 KB
 Heruntergeladen:  548 mal
ohne Fehler.JPG
 Beschreibung:
ohne Waitbar

Download
 Dateiname:  ohne Fehler.JPG
 Dateigröße:  44.02 KB
 Heruntergeladen:  536 mal

_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 12:13     Titel:
  Antworten mit Zitat      
Hallo,

was Du noch probieren könntest ist, den hold on Befehl anders zu schreiben (ich nehme mal an h.grafik ist das handle auf Deine Achse):

Code:

hold(h.grafik,'on')
 


Die waitbar hat auch eine Achse und ich vermute mal, dass hold on sich in Deinem Beispiel auf die falsche Achse bezieht. Beim debuggen kann es passieren, dass Du das richtige Fenster irgendwie angeklickt hast und es dadurch aktiv wurde (und damit hold on richtig zugewiesen wurde).

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Themenstarter

Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2009, 12:33     Titel:
  Antworten mit Zitat      
Du hast voll ins Schwarze getroffen LittleX. Wink
Danke für eure Hilfe

Gruss Fragewurm
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
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.