Time format conversion command
1 次查看(过去 30 天)
显示 更早的评论
This post is related to this thread:
If I want to convert
36:40.0
to
time in seconds, how do I do this?
2 个评论
Matt Fig
2012-10-16
What form is that? Is it a string and many in a character array or a cell array or what?
A = ['36:40.0';'36:41.0';'34:40.3']; % Like this?
A = {'36:40.0';'36:41.0';'34:40.3'}; % Like this?
采纳的回答
Azzi Abdelmalek
2012-10-16
编辑:Azzi Abdelmalek
2012-10-16
t={'36:40.0' ,'37:40.0' ;'39:40.0' ,'31:40.0'}
out=cellfun(@(x) sum(cellfun(@str2double, regexp(x,'[:.]','split')).*[3600 60 1]),t)
7 个评论
Azzi Abdelmalek
2012-10-18
编辑:Azzi Abdelmalek
2012-10-18
Anthony, I suggest that you reformulate and repost your question, let it brief and very clear.
更多回答(1 个)
Matt Fig
2012-10-16
编辑:Matt Fig
2012-10-16
If you have a cell array, I would do this:
A = {'36:40.0';'36:40.1';'34:40.3'}; % A cell array
B = '${num2str(str2num($1)*60+str2num($2))}';
B = regexprep(A,'(\d+):(\d+\.\d*)',B)
If you have a character array, then:
A = ['36:40.0';'36:41.0';'34:40.3']; % A character array.
B = '${num2str(str2num($1)*60+str2num($2))}';
B = char(regexprep(cellstr(A),'(\d+):(\d+\.\d*)',B))
3 个评论
Matt Fig
2012-10-16
编辑:Matt Fig
2012-10-16
You seem to show where you converted to datenumbers using the DATENUM command. So why would it be surprising that you get datenumbers?
Show what this shows:
data{2}(1:3) % Or, what is in data{2}... strings?
If you don't see the strings in there, take the time to explore the data cell array before you run all these conversions on it. What is in data{1}? How about data{3}, etc...
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!