Verfasst am: 16.06.2012, 10:58
Titel: Slider Wert in GUI übergeben - es geht einfach nicht! RAGE
Hallo zusammen!
Seit Tagen versuche ich nun einen Slider Wert in einer GUI zu übergeben. Überall scheint es zu funktionieren, nur bei mir nicht. Bevor ich jetzt mit dem Vorschlaghammer auf den PC eindresche wollte ich jetzt doch noch einmal hier höflich im Forum nachfragen
Hier meine .m und .fig dateien
Das Programm ist eine Funküberwachung für ein RC Solar Auto. Der Slider ist nur zur Funktionsüberprüfung für den Axesplot. Dieser soll später ein Tacho werden. Im Prinzip will ich mit dem Slider die Tachonadel erst einmal steuern. Aber das funktioniert leider nicht, da ich aus der Slider callback function keinen wert per Handles an den Axeplot geben kann.
Seht selbst....
Achja, das Logo scheint jetzt mit dem neuen Plot auch nicht mehr angezeigt zu werden. Was mache ich dort falsch?
In der M-Datei ist die Signatur der Funktion nicht korrekt, dies zeigt Matlab auch an. Somit ist Dein Code syntaktisch nicht korrekt.
Zusätzlich steht 2 Funktionen über Deinem "hier muss der Wert des Silders hin" Kommentar, wie man die Werte des Sliders ausliest, d.h. entweder nimmst Du den Wert aus hObject, wenn Du in einem Callback des Sliders bist oder eben aus handles.
erstmal danke für die antwort und deine mühen meinen code anzuschauen.
ja, ich will den sliderwert aus seiner callback function unten in die axes function hineinbekommen.
leider bekomme ich das nicht hin.
wie ist der befehl um den slider wert in die axes function zu bekommen?
Code:
function slider2_Callback(hObject, eventdata, handles) % hObject handle to slider2 (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
y=get(handles.slider2,'Value');
function axes7_CreateFcn(hObject, eventdata, handles) % hObject handle to axes7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
%axes('units',get(gca,'units'),'position',get(gca,'position'),'color','none','visible','off') axis([-1101]) axis equal
h = line(NaN,NaN,'linewidth',3,'Color',[100]);
k = get(handles.slider2,'value')
for i=k % HIER SOLLTE DER SLIDER WERT HIN !!!!!!!!!!!!!!! set(h,'xdata',[0cos(i*pi/180)],'ydata',[0sin(i*pi/180)]) drawnow pause(0.01) end
Du musst zuerst einmal Deinen Code syntaktisch korrigieren. Dann schau Dir bitte die Funktionssignaturen an und vor allem was sie bedeuten.
Im Moment versuchst Du in eine create-Funktion eines Objektes auf ein anderes zuzugreifen. Eine create-Funktion eines UI Objektes wird nur ein einziges Mal aufgerufen, nämlich dann, wenn es erzeugt wird, d.h. Dein Code würde an dieser Stelle nur ein einziges Mal ausgeführt werden. Ist dass das Ziel was Du verfolgst !?
Weiterhin gilt dann auch, dass die Objekte in einer bestimmten Reihenfolge erzeugt werden, d.h. wenn das Objekt Deiner create-Funktion vor dem Silderobjekt erzeugt wird, dann existiert natürlich der Slider noch nicht und Du kannst nicht darauf zugreifen.
Ich empfehle Dir dringend, dass Du Deinen Code nur mit den Funktionen bestückst, die Du auch wirklich brauchst. Du gewinnst damit Übersichtlichkeit
function slider2_Callback(hObject, eventdata, handles) % hObject handle to slider2 (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
y=get(handles.slider2,'Value'); %lesen
set(handles.slider2,'Value', y); %den von eben gelesenen Wert schreiben!?
Und wann soll denn geplottet werden? beim bewegen des Sliders? Dann sollte das auch in den Callback rein!
MatlabGuruxxxxxxxxxxxxxxx
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 23.06.2016, 10:02
Titel:
danke hat mir geholfen
Einstellungen und Berechtigungen
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
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.