如何在MATLAB指南中制作倒数计时器?

时间:2017-01-09 13:36:23

标签: matlab matlab-guide

我正在尝试在GUIDE中制作一个从20到0(秒)倒计时的计时器。在此期间,用户将执行简单的操作(单击组按钮中的单选按钮),并在该20秒结束时将显示一条消息(取决于用户单击的按钮)。 我环顾四周,但似乎没有GUIDE的计时器对象(为什么它们不能制作一个,因为它非常有用?)。然而,我试图制作一个和下面的结果,它不起作用。 我在<script> $(document).ready(function () { Sys.Application.add_load(function () { var isPostback = $("#<%=hdnIsPostback.ClientID%>").val() === "ispostback"; $("[id^=cbBold_]").css({ 'font-weight': 'bold' }) if (!isPostback) $("#ddlPermissions").hide(); $(document).on('click', '[id*=CbList]', function () { var show = false; $("#ddlPermissions").hide(); $("[id*=CbList] input:checked").each(function () { show = true; }); if (show) $("#ddlPermissions").show(); }); var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function () { $("[id^=cbBold_]").css({ 'font-weight': 'bold' }) }); }); }); </script> 中初始化了setappdata

MyGUI_OpeningFcn

% Initialize setappdata timeout = 20; setappdata(handles.figure1,'timeout', timeout); 是单选按钮,Next_calculation是静态文本。

timerBox

计时器开始后,会调用function Next_calculation_Callback(hObject, eventdata, handles) [..] timeout = getappdata(handles.figure1,'timeout'); t = timer('Period', 1.0,... % 1 second 'StartFcn', set(handles.timerBox,'String',num2str(timeout)), ... 'ExecutionMode', 'fixedRate', ... % Starts immediately after the timer callback function is added to the MATLAB execution queue 'TasksToExecute', timeout, ... % Indicates the number of times the timer object is to execute the TimerFcn callback 'TimerFcn', @my_timer ... % callback to function ); start(t) 来调用TimerFcn。我应该把句柄传递给my_timer,但我不确切知道如何。

my_timer

1 个答案:

答案 0 :(得分:2)

您需要使用TimerFcn的自定义匿名函数将必要的数据传递给您的计时器回调

set(t, 'TimerFcn', @(s,e)my_timer(hObject, handles))

然后,您可以将my_timer回调定义为

function my_timer(hObject, handles)
    % Do stuff with handles
end
相关问题