我使用Matlab中的GUIDE功能构建了一个GUI。我有很多按钮。我首先点击一个按钮开始tic
。然后当我点击任何其他按钮时,我想构建一个toc
时间戳的向量。我该怎么做呢?
答案 0 :(得分:2)
最强大的解决方案是在GUI的句柄结构中存储和操作向量。首先,在你的"创建函数"中,初始化开始和停止向量:
function yourGui_CreateFcn ( hObject , eventdata , handles )
% Initialize the start and stop vectors.
handles.timeStart = [];
handles.timeStop = [];
% Update the GUI handles structure.
guidata ( hObject , handles );
end
然后,在第一个按钮中,启动计时器并将其存储到手柄矢量中。
function button1_Callback ( hObject , eventdata , handles )
% Start the timer, updating the value in the handles structure.
handles.timeStart = tic;
% Update the GUI data so that timer is available to other functions.
guidata ( hObject , handles );
end
接下来,在每个其他按钮回调中,从句柄结构中检索开始时间并确定已用时间:
function button2_Callback ( hObject , eventdata , handles )
% Retrieve the start time.
timeStart = handles.timeStart;
% Determine the elapsed time.
timeElapsed = toc ( timeStart );
% Store the new value in the handles structure.
handles.timeStop(end+1,1) = timeElapsed;
% Update the guidata.
guidata ( hObject , handles );
end
最后,您可以使用"输出功能"从GUI输出值。
function yourGui_OutputFcn ( hObject , eventdata , handles )
% Specify the output variables.
varargout { 1 } = handles . timeStart;
varargout { 2 } = handles . timeStop;
end
然后,您将在命令行中使用以下语句执行您的gui:
>> [timeStart,timeStop] = yourGui ( );