我在Matlab中创建一个GUI,它将根据试用期限读取和写入文本文件。用户将输入试验次数和试用期限 然后按“开始”按钮。
例如,用户在10秒的时间内输入5次试验。在开始第一次试验时,我需要连续读/写数据10秒钟,然后停止并保存文本文件。这个过程将在接下来的5个试验中继续进行。这是我试图在下面实现的简短代码。
如何同时运行计时器10秒并同时读取/写入具有该时间限制的数据?
提前致谢。
% Get Number of Trials
number_trials = str2double(get(handles.Number_Trials,'String'));
% Get Trial Duration
trial_duration = str2double(get(handles.Trial_Duration,'String'));
% Timer Counter
global timer_cnt
timer_cnt = 0;
global eye_data
eye_data = 0;
for i = 1:number_trials
% Set Current Trial Executing
set(handles.Current_Trial_Text,'String',num2str(i));
% Set Text File Specifications
data_fname = get(handles.Data_Filename_Edit_Text,'String');
file_fname = '.dat';
data_fname_txt = strcat(data_fname,file_fname);
% Timer Object
fprintf('%s\n','Timer Started');
% Pauses 10 Seconds
t = timer('TimerFcn','stat=false','StartDelay',10);
start(t);
stat = true;
while(stat == true)
disp('.');
pause(1)
end
fprintf('%s\n','Timer Ended');
delete(t);
end
答案 0 :(得分:1)
根据我的经验,计时器通常用于“等待这段时间,然后做foo
”而不是你如何使用它,这是“做foo
直到你在这段时间内完成了它。“
简陋的tic/toc
函数可以为您完成此任务。
t_start = tic;
while toc(t_start) < 10
% do data collection
end