How to read a numerical value from a static text box?

7 visualizaciones (últimos 30 días)
Vivien Bartis
Vivien Bartis el 4 de En. de 2021
Comentada: Rik el 4 de En. de 2021
I tried it like this, but it won't use the value to calculate and plot the sine wave.
function pushbutton2_Callback(hObject, eventdata, handles)
f=num2str(get(handles.text6,'String'));
t=0:0.01:1;
b=sin(2*pi*f*t);
axes(handles.axes1);
plot(b);
This is where I calculate the f, with another pushbutton
function pushbutton1_Callback(hObject, eventdata, handles)
r=handles.edit1;
c=handles.edit2;
f=1/(2*pi*r*c);
set(handles.text6,'String',strcat(num2str(f*1000,2),' Hz'))
  1 comentario
Rik
Rik el 4 de En. de 2021
For general advice and examples for how to create a GUI (and avoid using GUIDE), have look at this thread.

Iniciar sesión para comentar.

Respuestas (2)

Maximilian Schönau
Maximilian Schönau el 4 de En. de 2021
Did you try str2double instead of num2str? ;)

Rik
Rik el 4 de En. de 2021
You need to strip the unit from the char array. Best practice is to keep numeric fields as pure as possible. With the uifigure-tools it is possible to enforce this during input, but in this case you need to remove it yourself:
function pushbutton2_Callback(hObject, eventdata, handles)
f=get(handles.text6,'String');%retrieve value from text field
f=strrep(f,'Hz','');%remove unit
f=num2str(f);%convert to value
t=0:0.01:1;
b=sin(2*pi*f*t);
plot(t,b,'Parent',handles.axes1);
% ^^ are you sure you don't want this instead of only b?
end

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by