进口和出口日期到Excel文件
MATLAB和Excel日期
微软®Excel®软件可以将日期表示为文本或数值。例如,在Excel For Windows中®,您可以将2012年4月1日表示为字符向量“04/01/12”
或者作为数值41000
。在MATLAB中表示日期的最佳方法®是使用日期时间值。但是,MATLAB函数从Excel文件中导入日期为文本或数值。此外,您可能希望导出由现有代码生成的文本或数字日期。使用datetime
函数将表示日期和串行日期数的文本转换为日期时间值。
Excel和MATLAB都将数字日期表示为从特定参考日期经过的连续天数,但应用程序使用不同的参考日期。
该表列出了MATLAB和Excel的默认参考日期。有关Excel中默认参考日期的详细信息,请参阅Excel帮助。
应用程序 | 参考数据 |
---|---|
MATLAB序列号 | 1月10日 |
Excel for Windows | 1900年1月1日 |
Macintosh的Excel | 1904年1月2日 |
使用Excel for Windows导入系统上的日期
本示例展示了如何将包含日期的Excel文件导入到使用Excel for Windows的系统上的MATLAB表中。
创建假设文件weight.xls
它包含以下数据。
日期重量1996年10月31日174.8 1996年11月29日179.3 1996年12月30日190.4 97年1月31日185.7
使用以下命令导入数据readtable
。
T = readtable(“weight.xls”)
T =日期重量 ____________ ______ ' 10/31/1996 11/29/1996“174.8”“179.3”12/30/1996 185.7“190.4”1/31/1997”
在使用Excel for Windows的系统上日期
变量是表示日期的字符向量的单元格数组。
将表示日期的文本转换为T
来为时间值设置日期datetime
函数。
date = datetime(时间)目前为止,“InputFormat”,“MM / dd / yyyy”)
T =日期重量___________ ______ 1996年10月31日174.8 1996年11月29日179.3 1996年12月30日190.4 1997年1月31日185.7
进口日期在没有Excel的Windows系统上
本示例展示了如何将包含日期的Excel文件导入到MATLAB表中在没有Excel的Windows系统上。
创建假设文件weight.xls
它包含以下数据。
日期重量1996年10月31日174.8 1996年11月29日179.3 1996年12月30日190.4 97年1月31日185.7
使用以下命令导入数据readtable
。
T = readtable(“weight.xls”)
T =日期重量_____ ______ 35369 174.8 35398 179.3 35429 190.4 35461 185.7
的日期
变量的输出表是一个数组的MATLAB串行日期数。
将数字日期转换为T
转换为MATLAB日期时间值。
如果文件使用1900日期系统(Excel for Windows的默认值),输入:
date = datetime(时间)目前为止,“ConvertFrom”,“超越”)
T =日期重量 ____________________ ______ 11月31日——10月29 - 1996就是174.8 - 179.3 - 1996就是12月30 - 31 - 1996就是190.4 - 1月- 1997就是185.7
如果文件使用1904年日期系统(Macintosh中Excel的默认值),则键入:
date = datetime(时间)目前为止,“ConvertFrom”,“excel1904”);
Excel日期数字四舍五入到最接近的微秒。
导出日期到Excel文件
导出日期时间值
控件将日期时间值导出到Excel文件writetable
函数。
创建的行向量datetime
值。
D = datetime({“11/04/1997”,“12/02/1997”,“01/05/1998”,“02/01/1998”},…“InputFormat”,“MM / dd / yyyy”);
创建示例数据的行向量。
权重= [174.8 179.3 190.4 185.7];
使用表格
函数创建包含数据的列的表d
和权重
。使用“VariableNames”
名称-值对参数指定表中的变量名称。
T = table(d',weights',“VariableNames”, {“日期”,“重量”})
T =日期重量___________ ______ 1997年11月4日174.8 1997年02月12日179.3 1998年05月1日190.4 1998年1月1日185.7
将表导出到一个名为myfile.xls
使用writetable
函数。
writetable (T)“myfile.xls”);
Excel文件包含以字符向量表示的日期。
在导出前将数字日期转换为日期时间值
属性导出到Excel文件之前,此示例显示如何导出将数字日期转换为日期时间值writetable
函数。
创建一个矩阵,其中包含在第一列中表示为数值的日期。
Wt = [729698 174.8;…729726年175.3;…729760年190.4;…729787年185.7);
将矩阵转换为表格。使用“VariableNames”
名称-值对参数指定表中的变量名称。
T = array2table(wt,“VariableNames”, {“日期”,“重量”})
T =日期权重__________ ______ 7.297e+05 174.8 7.2973e+05 175.3 7.2976e+05 190.4 7.2979e+05 185.7
转换MATLAB中的串行日期数字重量
变量为datetime值。
date = datetime(时间)目前为止,“ConvertFrom”,“datenum”)
T =日期重量 ____________________ ______ 04 - 11月- 1997就是174.8 02 - 12月- 1997就是175.3 05 - 1月- 1998就是190.4 01 - 2月- 1998就是185.7
导出数据writetable
函数。
writetable (T)“myfile.xls”)