matlab中的时间格式化
time formatting in matlab
我有如下所示的每分钟时间序列。格式类似于“"hh:mm"”,如下所示
'"8:59"'
'"9:00"'
'“9:01”'
'“9:02”'
'“9:03”'
'“9:04”'
'“9:05”'
'“9:06”'
'“9:07”'
是否可以在 matlab 中将这些更改为 hhmm 格式,例如 859 900 901 902 t0 a double 格式。
到字符串
strjoin(strsplit(s, ':'),'')
加倍
str2num(strjoin(strsplit(s, ':'),''))
如果您有这些引号 ""
并想删除它们,请在此处使用它
str2num(strjoin(strsplit(s(3:end-2), ':'),''))
您可以使用 strrep
or regexprep
之类的函数来删除字符串中的冒号。例如:
t = {'"8:59"', '"9:00"', '"9:01"', '"9:02"'};
newt = strrep(t, ':', '');
newt = strrep(newt, '"', '');
newt = strrep(newt, ''', '');
或者有点奇怪的 regexprep
调用:
newt = regexprep(t, '[''''"'':]', '');
Returns
newt =
'859' '900' '901' '902'
然后您可以将其与 str2double
一起使用来生成双精度向量:
tdouble = str2double(newt);
哪个returns:
tdouble =
859 900 901 902
我还建议您看一下 datenum
and datestr
,它们是用于处理序列日期值的 MATLAB 内置函数。例如:
tother = datenum(t, 'HH:MM');
Returns:
tother =
1.0e+05 *
7.3597
7.3597
7.3597
7.3597
然后返回:
totherstr = datestr(tother, 'HH:MM');
哪个returns:
totherstr =
08:59
09:00
09:01
09:02
我有如下所示的每分钟时间序列。格式类似于“"hh:mm"”,如下所示
'"8:59"' '"9:00"' '“9:01”' '“9:02”' '“9:03”' '“9:04”' '“9:05”' '“9:06”' '“9:07”'
是否可以在 matlab 中将这些更改为 hhmm 格式,例如 859 900 901 902 t0 a double 格式。
到字符串
strjoin(strsplit(s, ':'),'')
加倍
str2num(strjoin(strsplit(s, ':'),''))
如果您有这些引号 ""
并想删除它们,请在此处使用它
str2num(strjoin(strsplit(s(3:end-2), ':'),''))
您可以使用 strrep
or regexprep
之类的函数来删除字符串中的冒号。例如:
t = {'"8:59"', '"9:00"', '"9:01"', '"9:02"'};
newt = strrep(t, ':', '');
newt = strrep(newt, '"', '');
newt = strrep(newt, ''', '');
或者有点奇怪的 regexprep
调用:
newt = regexprep(t, '[''''"'':]', '');
Returns
newt =
'859' '900' '901' '902'
然后您可以将其与 str2double
一起使用来生成双精度向量:
tdouble = str2double(newt);
哪个returns:
tdouble =
859 900 901 902
我还建议您看一下 datenum
and datestr
,它们是用于处理序列日期值的 MATLAB 内置函数。例如:
tother = datenum(t, 'HH:MM');
Returns:
tother =
1.0e+05 *
7.3597
7.3597
7.3597
7.3597
然后返回:
totherstr = datestr(tother, 'HH:MM');
哪个returns:
totherstr =
08:59
09:00
09:01
09:02