Verfasst am: 29.09.2008, 22:15
Titel: slider werte anzeigen und speichern
Guten Abend zusammen...
Nachdem mei letztes GUI-Problem so schön gelöst wurde, stehe ich vor einem neuen:
Ich möchte Parameter über einen slider verändern (klappt bereits) allerdings bekomme ich eine parallele Anzeige, die den jeweiligen Wert angibt nicht hin.
Bis jetzt sieht das ganze so aus:
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
%Initialisierung
fs=44100;
t=0:1/fs:1;
%Referenzsignal bei 500Hz mit 70Hz f_mod und m=0.7
f_mod = get(handles.slider1,'value');
f_tr=500;
y_mod=cos(2*pi()*f_mod*t);
y_tr=cos(2*pi()*f_tr*t);
a=1;
m=0.5;
y_am=a.*(1+m.*y_mod).*y_tr;
y_am=0.5*(y_am./max(y_am));
sound(y_am,fs);
Ich möchte Parameter über einen slider verändern (klappt bereits) allerdings bekomme ich eine parallele Anzeige, die den jeweiligen Wert angibt nicht hin.
Bis jetzt sieht das ganze so aus: [...]
Du musst noch ein Textfeld erstellen in welchem dann der Wert eingetragen wird:
Code:
% Diese Zeile muss dann in der Slider-Callback am Ende stehen: set(handles.text1,'String',num2str(slider_value));
Guten Morgen...
Danke erstmal... das mit dem anzeigen funktioniert super!
nein... es handelt sich um eine testreihe und ich möchte, dass die Testperson ihre eingestellten Werte abspeichern kann... Das heißt in einem GUI sind mehrere Tests untereinander. Jeder test besteht aus einem Silder... Am schönsten wäre es, wenn ich unten einen button mit sprichern einrichten könnte, welcher dann alle aktuellen slider-werte in einer externen Datei speichert...
Am schönsten wäre es, wenn ich unten einen button mit sprichern einrichten könnte, welcher dann alle aktuellen slider-werte in einer externen Datei speichert...
wenn cih das so ausführe, wird zwar auch was gespeichert, aber nicht der angezeigte wert...
So ist zum beispiel die im edit angezeigte frequenz 542 Hz, aber abgespeichert wird der Wert 1.0088
Hi... jetzt habe ich doch och eine Frage zu meinen abgespeicherten Werten...
ich habe jetzt 16 unterschiedliche Werte in einem .mat file gespeichert...
Nun würde ich diese gerne in einer Graphik über andere Werte wieder geben... kannst DU mir da vielleicht auch weiterhelfen?
genau gesagt habe ich 16x folgende Funktion im m-file:
Code:
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%Initialisierung
fs=44100;
t=0:1/fs:1;
%Testschall bei f_Tr_T=250Hz mit f_mod_T=70 und m_T=0.7
f_mod_T = 70;
f_tr_T=250;
y_mod_T=cos(2*pi()*f_mod_T*t);
y_tr_T=cos(2*pi()*f_tr_T*t);
a_T=1;
m_T=0.7;
y_am_T=a_T.*(1+m_T.*y_mod_T).*y_tr_T;
y_am_T=0.5*(y_am_T./max(y_am_T));
sound(y_am_T,fs);
% --- 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
%Initialisierung
fs=44100;
t=0:1/fs:1;
%Vergleichschall bei f_Tr_V=250Hz mit f_mod_V=50Hz und m=var
f_mod =50;
f_tr=250;
y_mod=cos(2*pi()*f_mod*t);
y_tr=cos(2*pi()*f_tr*t);
a=1;
m= get(handles.slider1,'value');
y_am=a.*(1+m.*y_mod).*y_tr;
y_am=0.5*(y_am./max(y_am));
sound(y_am,fs);
und ich möchte den eingestellten Wert für m y-Achse mit dem dazugehörigen Wert für f_mod_T (aus der Funktion des pushbuttons) auf der x-Achse darstellen...
geht das wohl?
Hab ich das richtig verstanden, dass du die Werte der Slider auf der einen Achse und die Werte aus der Funktion auf der anderen Achse darstellen möchtest?
Du hast ja geschrieben, dass du die Callbacks sooft hast, wie Slider vorhanden sind!?
Du könntest dir zu Beginn zwei 16x1-Vektoren erstellen und dann in jeder Callback an die entsprechende Stelle der Vektoren, z.B. für Slider12:
also dank dieses Forums ist matlab ja gar nicht mehr so schlimm wie ich dacht... auch das plotten klappt wie am schnürchen...
erneut meinen dank!
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.