具有多个滑块的GUI

时间:2015-01-11 12:55:45

标签: matlab

我有一个取决于8个变量的方程式,并且有8个滑块定义每个变量。到目前为止,我已经用按钮开始计算方程式,并且已经绘制了。 我希望GUI在没有按钮的情况下进行计算,每当我更改任何滑块的值时,解决方案会在图中自动更新。 这是我到目前为止使用的代码:

 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)
 T = get(handles.sliderT, 'value');
 x0=get(handles.sliderx0,'value');
 kSin=get(handles.sliderkSin,'value');
 kSigma=get(handles.sliderkSigma,'value');
 Omega=get(handles.slideromega,'value');
 alpha=get(handles.slideralpha,'value')*180/pi;
 t0=get(handles.slidert0,'value');
 tspan = [0 50];
 xprimefixed = @(t,x) xprime(t,x,T,kSin,kSigma,Omega,alpha,t0);
 [t,x] = ode45(xprimefixed, tspan, x0);
 plot(handles.axes2, t, x, 'g');

是否有任何机构可以就如何放置代码以消除按钮提出建议? 非常感谢提前。

1 个答案:

答案 0 :(得分:0)

当前在按钮回调中的功能是什么计算。

我建议您将pushbutton1_Callback(~,~,handles)重命名为runODE(handles),并在每个滑块的回调结尾添加runODE(handles)。因此,每个滑块移动都会调用runODE

更好的设计方法是让runODE仅从GUI中读取值,并使用单独的函数接受所有这些值并返回xt ,然后您可以在GUI中绘图。因此,您可以轻松使用(并测试)ODE功能,而无需启动GUI,例如,如果您想执行详尽的参数扫描。