文档

进口和出口日期到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”

另请参阅

||

相关的话题

这个话题有帮助吗?