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

geschwindigkeit von axes in gui

 

Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 12.08.2008, 12:18     Titel: geschwindigkeit von axes in gui
  Antworten mit Zitat      
Hallo,
hoffe es hatten alle einen guten Start in die neue Woche!

Ich bin mal wieder unglücklich. Ich habe mir mit guide ein schönes GUI gebastelt und es tut auch alles was es soll (ich kann mein Glück kaum fassen). Nur leider Grotten langsam und das an einer Stelle bei der ich es nicht verstehe.
In dem GUI sind sechs axes in denen Daten einer Messreihe dargestellt sind. Mit einem Slider wähle ich nun einen bestimmten Zeitpunkt (Einen Wert auf der X-Achse) aus, an dem in diese sechs Axes eine vertikale Linie eingezeichnet werden soll.
Also lösche ich die ale line (handle hab ich mir gemerkt), schalte auf hold all, hole mir mit get(handle...,'ylim') die Grenzen, zeichne eine neue Linie und zeichne die Legende neu (hold off). Und das ganze halt für jede axes.
Dieses prozedere dauert fast 3 Sekunden... warum zum Twisted Evil
Welcher Schritt dauert da so lange und kennt jemand Abhilfe?
Danke!
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 12.08.2008, 12:26     Titel:
  Antworten mit Zitat      
Moin,

das kann man so ohne weiteres nicht beantworten, aber du kannst den profiler benutzen:
Code:
profile on;
% [...] % der Code
profile viewer;

Da kannst du dann nachvollziehen, was wie lange braucht...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 12.08.2008, 14:44     Titel:
  Antworten mit Zitat      
Hallo steve,
vielen Dank für diesen Hinweis! Es gibt so Tools, bei denen fragt man sich nach 1 stündiger Nutzung wie man eigentlich vorher ohne gelebt hat...

Habe durch profile zu meiner Verwunderung festgestellt das die Legende sich wie ein Betonschuh verhällt. Habe diese jetzt ausgelagert.

Ein weiterer Hemmschuh ist das ändern der "current axes" durch axes(handle.bla) um anschließend mit line auf das Axes zugreifen zu können).
Kennt dafür jemand vielleicht einen workaround?

Danke bis hierhin!!
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 12.08.2008, 15:12     Titel:
  Antworten mit Zitat      
Du könntest es noch mit
Code:
probieren...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 12.08.2008, 15:38     Titel:
  Antworten mit Zitat      
mhh, mit
Code:
set(gca, handles.bla)
bekomme ich nur ein
??? Invalid parameter/value pair arguments.[/code]

Bin ich zu doof oder geht das so nicht?
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 12.08.2008, 15:46     Titel:
  Antworten mit Zitat      
Sorry, war mein Fehler...

Code:
set(gcf,'CurrentAxes',handles.bla);


Das sollte aber klappen, zumindest solange du nur ein Fenster hast, ansonsten statt gcf den handle für das Fenster mit der Axes angeben...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 12.08.2008, 17:09     Titel:
  Antworten mit Zitat      
Hallo steve,
vielen Dank für Deine Hilfe.
Durch Zufall hat ein Kollege mir grade erzählt das er vor nen paar Wochen ein ähnliches Problem hatte. Sein Lösungsweg ist für meine Anwendung wesentlich eleganter. Er verschiebt die Line, ansatt sie zu löschen und neu zu zeichnen.

Code:
set(Line_handle, 'XData', [X X]);


Das scheint von der Performance unschlagbar zu sein.
Aber ich werd mir den anderen Weg und besonders profile merken.
Gruß Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
Matze E.
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 06.08.09
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 17.10.2009, 14:18     Titel:
  Antworten mit Zitat      
Hallo Schrank,

ich habe ebenfalls eine GUI programmiert mit vier Achsen auf denen vier Signale ausgegeben werden. Zunächst habe ich den aktuellen Zeitpunkt mit Scrollbars dargestellt. Nun habe ich aber von den senkrechten Linien gelesen und selber ein wenig probiert. Genau genommen seit zwei Wochen Sad leider

Leider habe ich ein Problem, dass ich nicht in den Griff bekomme. Am Anfang habe ich die Senkrechten eingefügt. Nach dem Laden oder Aufnehmen der Signale existieren in den Achsen die Linien aber nicht mehr. Wenn ich mit hold arbeite, läuft das aber darauf hinaus, dass das Beschneiden der Daten, welches ich anbieten muss, für eine mehrfache Plotausgabe sorgt.

Hast Du das anders gelöst? Wenn ja, wäre es toll, wenn Du das hier erklären könntest.

Viele Grüße
Matze
_________________

Nicht der ist der Beste,
der der Beste von allen ist,
sondern der,
der sich selbst ueberwindet.
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 27.10.2009, 17:35     Titel:
  Antworten mit Zitat      
Hallo Matze,

tut mir leid das ich mich nicht gemeldet habe. Ich habe diesen Uralt Thread nicht ernst genommen. Smile

Kannst du deine Daten mit "line" in die entsprechende axes zeichnen? Damit bin ich das Problem umgangen?

Liebe Grüße und viel Erfolg
Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 31.10.2009, 21:35     Titel:
  Antworten mit Zitat      
Hallo,

zwei Kommentare:
- man muss nicht umschalten zwischen verschiedenen Achsen. Alle Befehle, die mit Grafiken arbeiten, vertragen einen Handle, der der "Parent" sein soll, also:
Code:
line(x,y, 'Parent', handleToAxes)
fügt die Linie handleToAxes hinzu, egal was CurrentAxes zur Zeit ist, oder auch
Code:
xlabel(handleToAxes, 'Die Beschriftung');

- @Schrank: ja, grundsätzlich ist das updaten von Grafikobjekten dem Löschen und Neuhinzufügen von Grafikobjekten WEIT überlegen ...

Titus[/code]
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 - 2024 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.