我在Matlab项目中使用tic-toc功能的地方很多。输出时间可以是331.5264 or 1234.754 seconds
等。我可以输出这是分钟格式吗?例如。 5 minutes and 30.6 seconds
?谢谢!
答案 0 :(得分:20)
您所要做的就是从toc
捕获输出(而不是让它显示默认输出),然后使用函数fprintf
,floor
自行创建输出, rem
:
tStart = tic;
% Do some things...
tEnd = toc(tStart);
fprintf('%d minutes and %f seconds\n', floor(tEnd/60), rem(tEnd,60));
答案 1 :(得分:5)
虽然tic和toc无法在几分钟内显示值,但您可以在显示之前稍微处理数据。请查看以下link到秒/小时/分钟转换器。
用法如下:
tic
% Do something
time_str = SECS2HMS(toc)
disp(time_str)
当我回到Windows VM上时,我会尝试这样做。希望这会有所帮助。
修改强>
您可以使用Matlab中内置的datestr和datenum函数以及以下方式。请注意,我还没有尝试过这段代码,但链接让我想起了如何做到这一点的语法(没有提出Matlab)
tic
%Do something
t=toc;
disp(datestr(datenum(0,0,0,0,0,t),'HH:MM:SS'))
答案 2 :(得分:2)
我发现最简单的方法是使用:
TIME = tic;
% do calculations which take TIME to complete
fprintf('This took %s', duration([0, 0, toc(TIME)]));
(toc()
returns the time from the stopwatch in seconds和duration()
expects a three-column matrix expressing a time duration in [hours, minutes, seconds] format)。
这具有保持大部分时序计算不可见的良好特性。
希望这有帮助。
答案 3 :(得分:0)
这个适合我:
.write()