1

我正在尝试从 excel 表中读取测试表,我的 excel 表看起来像这样

 Building      location start_date  start_time  end_date    end_time    number
 Test_Building  1.08    12.06.2016  19:00       12.06.2016      19:30    7

现在,当我使用以下命令在 matlab 中将其作为表格阅读时:

R = readtable('testtable.xlsx','ReadVariableNames',1) 

我得到类似的东西

R = 

       Building        location     start_date     start_time      end_date      end_time    number
    _______________    ________    ____________    ____________    ____________    ________    ______

    'Test_Building'    1.08        '12.06.2016'    0.79167         '12.06.2016'    0.8125      7     

现在,如果您注意到start_timeandend_time是以datenum格式而不是 a 格式检索的,datestr我该如何保存这段时间,以便当我检索这些变量时它们是 datestr 格式?

4

1 回答 1

1

这里要实现的关键是,如果您在 Excel 中使用日期,它将不会存储为字符串,而是存储为对应的 datenum。特别是,打开同一个文件的两个人可能会根据他们的设置看到不同的字符串。

因此,没有“从 excel 中获取日期字符串”之类的东西。

有一些解决方法,例如将您的日期作为字符串存储在 excel 中(正如您在评论中提到的那样)。然而,这并不总是可能的。

也许甚至有可能加载字符串,因为 Excel 会根据您当前的设置显示它,但这当然不是很便携,如果您更改设置,您很容易遇到麻烦,因为 Matlab 中的以下计算将不匹配格式了。更不用说您需要单独解析具有不同格式的日期列,即使它们在同一个文件中。

因此,我建议以下内容:

读取 datenum,并在 MATLAB 中解析它

当然,您可能想要一个日期,但即使您将其解析为字符串,这仍然是推荐的通用解决方案。

您在评论中提到要使用 datevec,因此您应该能够使用以下两个选项之一:

DateVector = datevec(DateNumber)

根据您的来源,您可能需要从数字中添加或减去一个常数以获得正确的日期。(可能 Excel 不需要,但只需尝试一次。)

于 2016-08-16T09:36:52.820 回答