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

slider werte anzeigen und speichern

 

jmw
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2008, 23:15     Titel: slider werte anzeigen und speichern
  Antworten mit Zitat      
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);

slider_value = get(hObject,'value');


als nächster Schritt soll außerdem der über den slider eingestellte parameter-wert gespeichert werden... gibt es dazu eine möglichkeit?
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 30.09.2008, 08:53     Titel: Re: slider werte anzeigen und speichern
  Antworten mit Zitat      
jmw hat Folgendes geschrieben:
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));


jmw hat Folgendes geschrieben:
als nächster Schritt soll außerdem der über den slider eingestellte parameter-wert gespeichert werden... gibt es dazu eine möglichkeit?


Inwiefern möchtest du den Wert speichern? Um ihn beim nächsten Aufruf wieder verwenden zu können? Dann schau dir mal mein Beispiel an Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
jmw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 09:08     Titel:
  Antworten mit Zitat      
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...
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 30.09.2008, 09:16     Titel:
  Antworten mit Zitat      
jmw hat Folgendes geschrieben:
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...

Genau das macht mein Beispiel Wink
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
jmw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 09:19     Titel:
  Antworten mit Zitat      
super... danke... dann werde ich mir das mal ansehen...
Private Nachricht senden Benutzer-Profile anzeigen
 
jmw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 09:48     Titel:
  Antworten mit Zitat      
Hi... ich habe versucht das in mein Testbeispiel einzubauen:
In der callback-funktion des slider steht dieses:
Code:

slider_value = get(hObject,'value');

set(handles.edit1,'String',num2str(ceil(get(hObject,'value'))));
 

und beim Speicher-Button das jenes:
Code:
% Werte abspeichern
wert1 = handles.edit1;

save('werte.mat','wert1')

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
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 30.09.2008, 09:54     Titel:
  Antworten mit Zitat      
Code:
% Werte abspeichern
wert1 = str2double(get(handles.edit1,'String'));

save('werte.mat','wert1')


Wink
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
jmw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 09:59     Titel:
  Antworten mit Zitat      
aha... funktioniert einwandfrei...
vielen vielen Dank...
Private Nachricht senden Benutzer-Profile anzeigen
 
jmw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 13:36     Titel:
  Antworten mit Zitat      
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);

slider_value = get(hObject,'value');


set(handles.edit1,'String',num2str(get(handles.slider1,'value')));


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?
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 30.09.2008, 16:40     Titel:
  Antworten mit Zitat      
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:
Code:
handles.vec1(12,1) = slider_value;
handles.vec2(12,1) = f_mod_T;
die Werte schreiben und diese beiden Vektoren dann plotten (z.B. durch betätigen eines Buttons).

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
jmw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 18:47     Titel:
  Antworten mit Zitat      
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!
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 - 2024 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.