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

Hotkey um durch Plot zu laufen

 

muuh
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2015, 10:04     Titel: Hotkey um durch Plot zu laufen
  Antworten mit Zitat      
Hallo zusammen,

Ich habe Plots von bis zu 30minütigen Datenaufzeichnungen.

Allerdings muss ich in diese ziemlich weit rein zoomen, um Details zu sehen.
Der sichtbare Bereich des Plots auf meinem Monitor ist für gewöhnlich 20 Sekunden.

Ist es nun möglich / gibt es einen Hotkey um automatisch immer um z.B. 20 Sekunden weiter zu springen.
Oder statt 20 Sekunden zum nächsten Fenster?

Mit der Maus immer die rechte Seite des Plots an zu klicken, nach links zu ziehen, Maus loslassen, zurück nach rechts zu bewegen, klicken .... usw... ist zml nervenaufreibend, und bis ich durch die ganze 30 minütige Aufzeichnung bin, habe ich einen Tennisarm^^

Die Pfeiltasten bewegen den Plot nach rechts/links.
Allerdings nur um ein minimales Stück. Ich denke die Pfeiltasten bewegen das sample-weise. Das wiederum ist mir deutlich zu langsam... (fs=128Hz).

Irgendwelche Ratschläge, wie ich das effizient lösen könnte?

Danke für Tipps!
muuh
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

du könntest z.B. mit uicontrol eigene Pushbuttons in die Graphik einbauen, die mit xlim die Skalierung der x-Achse (und auf Wunsch auch der y-Achse) entsprechend anpassen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2015, 10:58     Titel:
  Antworten mit Zitat      
Gerade kurz gekuckt was uicontrol ist. Hört sich nach einer recht Aufwändigen Lösung an, mit viel programmieren.
Hab noch nie uicontrol verwendet, d.h. das Programmieren wird dann in meinem Fall auch noch von viel googl'n und debuggen begleitet werden.

Eine einfachere Lösung gibt's nicht?

Aber danke schonmal, für den ersten Lösungsansatz!
Wenn's nix besseres gibt, werde ich wohl darauf zurückgreifen :>
Private Nachricht senden Benutzer-Profile anzeigen
 
muuh
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2015, 13:14     Titel:
  Antworten mit Zitat      
Hab jetzt einen kleinen workaround gefunden, in dem ich folgendes nach dem plotten in die Konsole haue:

Code:

prompt = 'Press key to advance 20s';
for t=0:20:10000000
xlim([t, t+20]);
input(prompt);
end
 


Funktioniert in dem nach jedem Tastendruck xlim([t, t+20]) neu ausgewertet wird, wobei t bei jedem Schleifendurchgang um 20 erhöht wird.

Ist wohl nicht das aller eleganteste, und man könnte es noch erweitern, z.B. dass man so vor und zurück kann.
Für's Erste tut's aber seinen Zweck :>
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.09.2015, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

Beispiel mit Pushbuttons:
Code:
function testpb
x = linspace(0, 20*pi, 1000);
y = 1./sqrt(x) .* sin(x);
f = figure();
ax = axes('Units', 'Normalized', ...
    'Position', [0.1,0.3,0.8,0.6], ...
    'Parent', f);
plot(ax, x, y)
xlim([1, 2*pi+1])

pb(1) = uicontrol(f, 'style', 'pushbutton', ...
    'Units', 'normalized', ...
    'Position', [0.2,0.1,0.15,0.1], ...
    'String', '<<', ...
    'Callback', @toleft);
pb(2) = uicontrol(f, 'style', 'pushbutton', ...
    'Units', 'normalized', ...
    'Position', [0.65,0.1,0.15,0.1], ...
    'String', '>>', ...
    'Callback', @toright);

function toleft(~, ~)

currentLimits = xlim;
newLimits = currentLimits - 2*pi;
newLimits = newLimits - min(0, newLimits(1));
xlim(newLimits)

function toright(~, ~)

currentLimits = xlim;
newLimits = currentLimits + 2*pi;
newLimits = newLimits - max(0, newLimits(2)-20*pi);
xlim(newLimits)


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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.10.2015, 11:27     Titel:
  Antworten mit Zitat      
Geniale und sehr elegante Lösung, Harald! Danke!

(Gibt's jetzt noch ne' Möglichkeit die Knöpfe an Hotkeys zu binden?)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

versuch's mal durch Definieren einer KeyPressFcn.

Grüße,
Harald
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.