Excel文件(104976x10)包含大量数据。
我想将以B列开始直到E列的列转换为日期格式,如'dd/mm/yyyy HH:MM‘。
数据示例:
1998,41655251 1998 152 1 0 12,5 12,0 11,8 11,9 12,0
我想做日期而不是第2,3,4和5列。
1998,41655251 01/06/1998 01:00 12,5 12,0 11,8 11,9 12,0
或
1998,41655251 01/06/1998 01:00 1998 152 1 0 12,5 12,0 11,8 11,9 12,0
发布于 2018-08-26 04:14:57
欢迎来到SO。Matlab有两种类型的数据格式:
我认为最好的方法是使用datetime,并像这样给它提供年、月、日、小时和分钟的值:
t=datetime(1998,0,152,1,0,0)
t= '01-May-1998 01:00:00‘
正如你所看到的,日子会自动溢出到月份中。但我最终会在5月1日结束,而不是像你的例子中那样是6月1日。
要更改格式:
t.Format='dd/MM/yyyy hh:mm'
t= '01/05/1998 01:00‘
要将其转换为字符串,只需使用string(t)
这是一个结合以上函数读取xlsx文件并使用更新后的列写入新文件的示例。
data=xlsread('test.xlsx');
S = size(data);
t = datetime(data(:,2),0,data(:,3),data(:,4),data(:,5),0);
t.Format='dd/MM/yyyy HH:mm';
data2=num2cell(data(:,1));
data2(:,2)=cellstr(string(t));
data2(:,3:S(2)-3)=num2cell(data(:,6:end));
xlswrite('test2.xlsx',data2);
https://stackoverflow.com/questions/52020541
复制相似问题