Matlab滑块-显示左右箭头,每1秒移动一次滑块



正如标题所说,我正在Matlab中使用GUIDE工具箱,我首先想知道如何在滑块的两端显示左/右箭头?

此外,我如何使滑块每1秒自动移动一次?

据我所知,我需要首先创建一个定时器对象,并将执行模式和周期设置如下:

time = timer;
set(time,'executionMode','fixedRate','period',1);

现在我知道我需要将时间rFcn设置为类似于:

set(handles.slider1,'Value',x); 

以便改变滑块的位置。

此外,我知道我需要先将x变量增加滑块步长,在我的情况下,滑块步长为0.00520833。例如:

x = x + 0.00520833;

所以我有一些代码如下:

time = timer;
set(time,'executionMode','fixedRate','period',1);
time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 
start(time);

然而,这不起作用,我确信这是因为我在做一些愚蠢的事情。

谢谢!

编辑:

现在我可以每秒移动滑块,但我想做的是每秒运行一个自己的函数。例如:

time.timerFcn = @slider_increment;
function slider_increment
set(handles.slider1,'Value', get(handles.slider1,'Value') + 0.00520833)
slider = get(handles.slider1,'Value');
set(handles.text4,'String', slider);

我知道这有点乱,但我稍后会整理。我面临的问题是如何在guide创建的GUI脚本中声明我自己的函数,并允许该函数访问GUI对象的句柄。

首先,这个

time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 

肯定会产生错误。。。

我想你想要这样的东西:

h = uicontrol;
time = timer;
set(time,'executionMode','fixedRate','period',1);
%Note: set(h,val,get(h,val) + change)
time.timerFcn = @(x,y)set(h,'position', get(h,'position') + 10);
start(time);

最新更新