我有一个表格的日期向量
20140117
20130325
20130530
等。 双向量中有5,000,000行。 如何将其传输到matlab认可的日期向量?
我不喜欢将它改成字符串并将它们分开放入。这需要太长时间!
请帮助!
答案 0 :(得分:4)
fix
和mod
的组合,您可以提取所需的数字:
%Matrix Columns YY,MM,DD,hh,mm,ss
[mod(fix(x/10000),100000),mod(fix(x/100),100),mod(x,100),zeros(size(x,1),3)]
%datenum
datenum(mod(fix(x/10000),10000),mod(fix(x/100),100),mod(x,100))
答案 1 :(得分:2)
如果你真的想避免转换成字符串然后回到数字,那么你可以使用这个方法:
D = [20140117; 20130325; 20130530];
YY = fix( D./10000 ) ;
MM = fix( (D-YY.*10000) /100 ) ;
DD = fix( (D-YY.*10000-MM.*100 ) );
DateInMatlabformat = datenum( YY , MM , DD ) ;
如果需要,您可以将其打包在一个内衬中,但基本上它的作用是:
YY
(D-YY.*10000)
)中删除此部分,然后除以100以获得月份。