expression to calculate the time difference using Matlab functions
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have many pairs of times expressed, for example, as "3:19" and "1:28.4". I know I can break these up and multiplly by 60, etc, to get the time difference in seconds, but is there a Matlab function that does it?
0 Commenti
Risposta accettata
Rik
il 19 Giu 2025
The closest to what you need is the duration function, but that has very limited support for text input.
str='3:19';
try,duration(str),catch ME,warning(ME.message),end
str='1:28.4';
try,duration(str),catch ME,warning(ME.message),end
You can also write something yourself:
delta=time2duration('3:19')-time2duration('1:28.4');
seconds(delta)
function d=time2duration(str)
RE=['((\d+):)?',... % optional hours
'(\d?\d):',... % one or two digit minutes
'(\d?\d(\.\d+)?)']; % seconds (with optional decimals)
x=regexp(str,RE,'tokens');
t = str2double([x{:}]);
t(isnan(t))=0;
d=duration(t(1),t(2),t(3));
end
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Annotations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!