Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlabgui中创建tic/toc向量_Matlab_User Interface_Matlab Guide - Fatal编程技术网

在matlabgui中创建tic/toc向量

在matlabgui中创建tic/toc向量,matlab,user-interface,matlab-guide,Matlab,User Interface,Matlab Guide,我使用Matlab中的GUIDE功能构建了一个GUI。我有很多按钮。我通过单击一个按钮开始tic。然后,当我单击任何其他按钮时,我想构建一个toc时间戳的向量。我该怎么做 最健壮的解决方案是在GUI的句柄结构中存储和操作向量。首先,在“创建函数”中,初始化开始和停止向量: function yourGui_CreateFcn ( hObject , eventdata , handles ) % Initialize the start and stop vectors. handles

我使用Matlab中的GUIDE功能构建了一个GUI。我有很多按钮。我通过单击一个按钮开始
tic
。然后,当我单击任何其他按钮时,我想构建一个
toc
时间戳的向量。我该怎么做

最健壮的解决方案是在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
接下来,在每个其他按钮回调中,从handles结构中检索开始时间并确定经过的时间:

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输出值

然后使用命令行中的以下语句执行gui:

>> [timeStart,timeStop] = yourGui ( );

新时间(currentCounterValue1+1)=toc;assignin('base','output_to_workspace',newTime)-->仅获取最新的newTime和0,其他时间我按下按钮。@sajawa:在
assignin
之前设置断点。代码创建一个新变量,然后覆盖基本工作区中以前的内容;如何将newTime初始化为变量?我一直收到未定义变量“newTime”的错误。谢谢,这帮了大忙。
>> [timeStart,timeStop] = yourGui ( );