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

deckungsgleiche Kurven zeitlich versetzt

 

Shakes79
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 24.05.11
Wohnort: Linz
Version: 2010a
     Beitrag Verfasst am: 01.06.2011, 14:33     Titel: deckungsgleiche Kurven zeitlich versetzt
  Antworten mit Zitat      
Hallo

Folgendes Problem. Ich habe in einem Subplot 2 Kurven erstellt (x1,y1 & x2,y2), die sich nur um einen beliebigen Wert der x-Achse verschoben sind. Habe ich mithilfe eines Sliders die Möglichkeit dies nun zu überprüfen, indem ich die 2.x-Achse verschiebe um eine etwaige Deckungsgleichheit abschätzen zu können.

Danke
Private Nachricht senden Benutzer-Profile anzeigen


mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 01.06.2011, 15:28     Titel:
  Antworten mit Zitat      
Ja hast du...^^

Du kannst in den Slider_Callback die zu verschiebende Kurve ja abhängig von der Sliderstellung neu berechnen

also z.B.
Code:

y2 = f(x2+get(hObject,'Value')
 


Musst dir halt überlegen in welchem Wertebereich der Slider arbeiten soll.

Entweder kannst du das bei GUIDE im Inspector unter MIN bzw. MAX festlegen, oder auch dynamisch im Programm mit
Code:

set(hObject,'MIN',0,'MAX',maxwert);

nach der Berechnung kannst du dann neu plotten und die Kurve ist verschoben
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Shakes79
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 24.05.11
Wohnort: Linz
Version: 2010a
     Beitrag Verfasst am: 01.06.2011, 15:35     Titel:
  Antworten mit Zitat      
Hallo Mawi

Danke für deine Antwort. Aber das ist nicht ganz was ich mir vorstellte. Ich möchte die Kurve online verschieben, da ich die Zeitdifferenz nicht kenne. Sprich ich verschiebe mit dem Slider die 2. Kurve bis diese mit der anderen übereinstimmt und kann dann mit Hilfe der Zoom Funktion Abweichungen eruieren.

LG Günter
Private Nachricht senden Benutzer-Profile anzeigen
 
mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 01.06.2011, 20:24     Titel:
  Antworten mit Zitat      
Weiss nicht was du genau mit online meinst, aber du kannst sie damit direkt verschieben. Sobald du den Slider verstellst kannst du die Kurve neu berechnen, die andere Kurve behältst du bei und plottest beide.
Das dauert ja nicht lang und er entsteht der Eindruck das man sie direkt verschiebt. Muss nur alles im Slider_Callback stehen.
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: 01.06.2011, 23:42     Titel:
  Antworten mit Zitat      
Hallo mawi,

Der Slider-Callback wird erst ausgeführt, wenn die Maustaste losgelassen wird. Siehe http://undocumentedmatlab.com/blog/continuous-slider-callback/.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 02.06.2011, 15:23     Titel:
  Antworten mit Zitat      
Stimmt

Aber ich wüsste nicht wie das auch während dem verschieben gehen soll.

Ist die Frage was passiert wenn man mit
get(handles.sliderx,'Value');
den Wert abfragt während man den Slider verschiebt.

Wenn er dann den aktuellen Wert ausgibt könnte man es vielleicht mit einer Timer-Funktion realisieren die z.B. alle 100ms den Wert abfragt und den plot aktualisiert.
Damit habe ich aber in Matlab noch nicht gearbeitet, nur in C.


Man kann den Slider ja auch mit den beiden Richtungsbuttons verschieben, dann ist es quasi-live^^
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: 03.06.2011, 01:58     Titel:
  Antworten mit Zitat      
Hallo mawi,

Die Timer werden nicht ausgeführt, während der Slider aktiviert ist.
Man könnte aber auch direkt die Kurve mit der Maus verschieben. Die ButtonDownFcn des LINE-Objekts und die WindowsButtonMotionFcn der FIGURE wären dafür geeignet.

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.