MATLAB: Read data from editing text in GUI

functionsmatlab gui

Hi guys, I need support about reading data from Matlab GUI.
In particular, I've written this code in my GUI but when I'm pushing on PUSHBUTTON1 it gives error Error while evaluating uicontrol Callback Undefined variable "handles" or class "handles.edit2".
The program doesn't read value for variable zeta, whilst the variable interval works.
How could I resolve this?
Thank you for your support.
function pushbutton1_Callback(hObject, eventdata, handles)
interval=str2double(get(handles.edit1,'string'));
t=0:interval:10;
initial_x = 0;
initial_dxdt = 0.1;
x0=[initial_x initial_dxdt];
[t,x]=ode45( @rhs, t, [initial_x initial_dxdt]);
plot(t,x(:,1))
function dxdt=rhs(t,x)
m=1;
k=10;
omega_n=sqrt(k/m);
zeta=str2double(get(handles.edit2,'string'));
F=sin(10*t);
dxdt_1 = x(2);
dxdt_2 = -2*zeta*omega_n*x(2) -(omega_n)^2*x(1) + sin(10*t);
dxdt=[dxdt_1; dxdt_2];

Best Answer

Keep in mind variable scope for functions. Look at the inputs to your function rhs
function dxdt=rhs(t,x)
The handles structure is not an input to this function, so it is not accessible inside it. This is what is causing the error in your calculation of zeta.
Try making handles an input to your function, or make the value of edit2 an input to rhs.