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

Matlab滑块-显示左右箭头并每1秒移动一次滑块,matlab,user-interface,timer,slider,Matlab,User Interface,Timer,Slider,正如标题所说,我正在使用Matlab中的向导工具箱,我首先想知道如何在滑块两端显示左/右箭头 还有,如何让滑块每1秒自动移动一次 据我所知,我需要首先创建一个计时器对象,并设置执行模式和周期,如下所示: time = timer; set(time,'executionMode','fixedRate','period',1); time = timer; set(time,'executionMode','fixedRate','period',1); time.timerFcn = set

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

还有,如何让滑块每1秒自动移动一次

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

time = timer;
set(time,'executionMode','fixedRate','period',1);
time = timer;
set(time,'executionMode','fixedRate','period',1);
time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 
start(time);
现在我知道我需要将timerFcn设置为:

set(handles.slider1,'Value',x); 
以更改滑块的位置

另外,我知道我需要首先通过滑块步长增加x变量,在我的例子中,滑块步长是0.00520833。例如:

x = x + 0.00520833;
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);
所以我有一些代码如下:

time = timer;
set(time,'executionMode','fixedRate','period',1);
time = timer;
set(time,'executionMode','fixedRate','period',1);
time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 
start(time);
然而,这不起作用,我相信这是因为我做了一些愚蠢的事情

谢谢

编辑:

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

x = x + 0.00520833;
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);

不工作或产生错误?出于好奇,为什么要自动调整滑块位置?我这样问是因为,例如,如果你试图在获取新数据时滚动推进绘图,可能有更好的方法。嗯,滑块只是显示数据的时间点的视觉表示。但它还允许用户选择一个时间点。因此,是的,我正在尝试显示一系列绘图,每秒钟显示一个新绘图,但滑块也允许用户选择特定时间。谢谢,这非常有效。但是,请告诉我为什么“滑块移动时执行”下的代码。当滑块每秒钟移动时,部分不会执行。当手动移动滑块时,它会执行。。。我需要滑块每秒钟移动一次,每次移动时,我都要执行一些代码来查询数据库并显示数据的图形。滑块只是正在绘制图形的数据流中当前点的视觉显示。手动移动滑块也应该执行代码。我不知道“在滑块移动时执行”是什么意思。你在什么地方回电话吗?如果是这样,则只有通过人机交互移动滑块时才会触发回调。您可以通过创建一个新函数myFun.m来解决这个问题,该函数将(1)移动滑块,(2)手动调用滑块回调。这听起来像是一个单独的问题。