【发布时间】:2020-11-27 23:25:00
【问题描述】:
我在我的 Matlab 项目中使用了很多地方的 tic-toc 函数。输出时间可以是331.5264 or 1234.754 seconds等。我可以输出这是分钟格式吗?例如。 5 minutes and 30.6 seconds?谢谢!
【问题讨论】:
我在我的 Matlab 项目中使用了很多地方的 tic-toc 函数。输出时间可以是331.5264 or 1234.754 seconds等。我可以输出这是分钟格式吗?例如。 5 minutes and 30.6 seconds?谢谢!
【问题讨论】:
虽然 tic 和 toc 无法在几分钟内显示值,但您可以在显示之前稍微处理数据。查看以下link 到秒到小时/分钟的转换器。
用法如下:
tic
% Do something
time_str = SECS2HMS(toc)
disp(time_str)
当我回到我的 Windows 虚拟机上时,我会试试这个。希望这会有所帮助。
编辑
您也可以通过以下方式使用 Matlab 中内置的 datestr 和 datenum 函数。请注意,我也没有尝试过这段代码,但链接让我想起了如何做到这一点的语法(没有调出 Matlab)
tic
%Do something
t=toc;
disp(datestr(datenum(0,0,0,0,0,t),'HH:MM:SS'))
【讨论】:
我发现最简单的方法是使用:
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)。
这有一个很好的特性,可以让大部分时间计算不可见。
希望这会有所帮助。
【讨论】:
这个适合我:
disp(['Elapsed time is ' num2str(round(toc/60,1)) ' minutes.'])
【讨论】: