expression to calculate the time difference using Matlab functions
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
Rik
el 19 de Jun. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!