Результаты MATLAB tic-toc в формате Минут - PullRequest
12 голосов
/ 02 мая 2011

Я использую функцию tic-toc в моем проекте Matlab как можно больше мест. Время вывода может быть 331.5264 or 1234.754 seconds и т. Д. Можно ли вывести это в формате минут? Например, 5 minutes and 30.6 seconds? Спасибо!

Ответы [ 3 ]

21 голосов
/ 03 мая 2011

Все, что вам нужно сделать, это захватить вывод из 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));
5 голосов
/ 02 мая 2011

Хотя tic и toc не имеют возможности отображать значения в минутах, вы можете немного обработать данные перед их отображением.Проверьте следующую ссылку на конвертер секунд в часы / минуты.

Использование будет следующим:

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'))
3 голосов
/ 28 февраля 2018

Самый простой способ, который я нашел, это использовать:

TIME = tic; % do calculations which take TIME to complete fprintf('This took %s', duration([0, 0, toc(TIME)]));

(toc() возвращает время от секундомера в секундах , а duration() ожидает матрицу из трех столбцов, выражающую продолжительность времени в формате [часы, минуты, секунды] ).

Это имеет приятное свойство - держать большинство временных расчетов вне поля зрения.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...