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

조회 수: 7 (최근 30일)
Vivien Bartis
Vivien Bartis 2021년 1월 4일
댓글: Rik 2021년 1월 4일
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
Rik
Rik 2021년 1월 4일
For general advice and examples for how to create a GUI (and avoid using GUIDE), have look at this thread.

댓글을 달려면 로그인하십시오.

답변 (2개)

Maximilian Schönau
Maximilian Schönau 2021년 1월 4일
Did you try str2double instead of num2str? ;)
  댓글 수: 1
Vivien Bartis
Vivien Bartis 2021년 1월 4일
okay, now I don't get the error, but I have still no plot.

댓글을 달려면 로그인하십시오.


Rik
Rik 2021년 1월 4일
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

카테고리

Help CenterFile Exchange에서 Data Type Identification에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by