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

Im Plot, Daten per Schieberegler auswählen?

 

ExxE
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 19.03.12
Wohnort: Wien
Version: R2010b
     Beitrag Verfasst am: 15.09.2012, 10:41     Titel: Im Plot, Daten per Schieberegler auswählen?
  Antworten mit Zitat      
Hallo Community

Ich möchte Daten eines Vektors eingrenzen, indem ich einen Schieberegler in einem Diagramm (Darstellung einer Funktionskurve) an die benötigte Anfangstelle und die Endstelle führe.
Die dazwischen liegenden Werte sollen dann für die weitere Verarbeitung verwendet werden.

Hat jemand eine Idee ob und wie das geht?
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: 15.09.2012, 11:11     Titel:
  Antworten mit Zitat      
Hallo,

ich würde zwei Schieberegler nehmen, einen für Anfang und einen für Ende.
Sprich, eine GUI mit einem Koordinatensystem und zwei Schiebereglern. In den Callbacks musst du nur noch bestimmen, wie der Fokus verschoben werden soll. Dabei kann XLIM nützlich sein.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 19.03.12
Wohnort: Wien
Version: R2010b
     Beitrag Verfasst am: 15.09.2012, 11:23     Titel:
  Antworten mit Zitat      
Ok, danke für die Antwort.

Kannst du mir da vielleicht ein Tutorial empfehlen, wo sowas ähnliches gemacht wird?

Hab mit MATLAB wenig Erfahrung und mit GUI´s hab ich noch Garnichts zu tun gehabt.

Darum klingt das für mich noch recht unverständlich. Sad
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: 15.09.2012, 13:15     Titel:
  Antworten mit Zitat      
Hallo,

jegliche Tutorials zu MATLAB GUI GUIDE. z.B. das hier:
http://www.youtube.com/watch?v=D_hmws6dwgg

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 19.03.12
Wohnort: Wien
Version: R2010b
     Beitrag Verfasst am: 17.09.2012, 10:39     Titel:
  Antworten mit Zitat      
Hallo

Hab mir jetzt einige Tutorials angesehen und viel probiert aber ich schaffe nicht...

Ich will folgendermaßen vorgehen.

1. Den beiden Schiebereglern als Minimal- und Maximalwert die des jeweiligen Vektor zuweisen.
2.Zwei Marker erstellen, die sich dann mit dem Wert des jeweiligen Schiebereglers entlang der Kurve verschieben.
3.Einen Button einbauen, bei dessen Betätigung die Werte zwischen den Markern als neue Vektoren Werte übernommen werden.
Es scheitert leider schon bei Punkt 1.......

Zu Punkt 1.:
Ich habe die Minimal und Maximal Werte des Vektors dem Slider zugewiesen.

Code:
% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider

load pendel1.mat
minimum=find(L_KnieAngle3D_orig,1,'first');
maximum=find(L_KnieAngle3D_orig,1,'last');
set(handles.slider1,'Min',minimum,'Max',maximum);


Bei bewegen des Sliders erhalte ich die Fehlermeldung:
"Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are valid
Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are valid
Warning: slider control can not have a Value outside of Min/Max range
Control will not be rendered until all of its parameter values are valid"

Ich weiß auch warum, der Startwert des Sliders ist Standartmäßig bei 0, der Minimalwert des Datenvektors aber bei 1.

Wie kann ich dem Slider als Startwert, den Minimalwert des Datenvektors zuweisen?

Zu Punkt 2.:
Ich habe einen Marker erstellt, der mit dem Slider mit wandern soll.

Code:
x=get(handles.slider1,'value')
y=???
line(x,y,'linestyle','none','marker','o','markeredgecolor','r');


In x-Richtung funktioniert das, wie kann ich ihm die Messdaten aus dem Vektor als y-werte zuweisen?
Außerdem wird der Marker an jeder Stelle gezeichnet, beim Verschieben des Sliders habe ich dadurch mehrere Markierungen. Wie kann ich den alten Marker löschen und nur den neuen behalten?

Bitte um Hilfe, ich komm nicht mehr weiter!
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: 17.09.2012, 12:38     Titel:
  Antworten mit Zitat      
Hallo ExxE,

Code:
set(handles.slider1,'Min',minimum,'Max',maximum, 'Value', 1);
% Oder:
set(handles.slider1,'Min',minimum,'Max',maximum, 'Value', minimum);


Zum zweiten Problem: Du kanbnst den Handle des Line-Objekts speichern (siehe: doc guidata) und nur dessen XData und YData neu setzen - such mal nach diesen Ausdrücken im Forum.

Können wir schon wissen, welchen Y-Wert Du haben möchtest?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 19.03.12
Wohnort: Wien
Version: R2010b
     Beitrag Verfasst am: 17.09.2012, 15:08     Titel:
  Antworten mit Zitat      
Hallo Jan

Zu den y-Werten:
Ja, die y-Werte des "line" Objektes, sollen ja die eigentlichen Messdaten sein, die x-Werte (also die Slider Werte)sind ja nur die Indexierung der y-Werte.
Ich habe nur keine Vorstellung wie ich die y-Werte passend zu den x-Werten einlesen kann, deshalb die ???.

Ich habe guidata probiert, aber scheinbar mache ich was falsch. Es werden immer noch alle Elemente angezeigt.

Code:
x=get(hObject,'value')
y=2 %2 ist nur ein Platzhalter da ich nicht weiß wie ich die Werte reinkrieg!
line(x,y,'linestyle','none','marker','o','markeredgecolor','r');
guidata(line,x);
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.