expression to calculate the time difference using Matlab functions
4 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Rik
on 19 Jun 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 Comments
More Answers (0)
See Also
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!