我正在尝试从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_time
和end_time
是以datenum
格式而不是datestr
格式检索的,我如何节省时间,以便当我检索这些变量时它们是datestr格式?
这里要意识到的关键是,如果在Excel中使用日期,它将不会被存储为字符串,而是作为相应的datenum。特别是,两个人打开同一个文件可能会根据他们的设置看到不同的字符串。
因此不存在'从excel中获取日期字符串'这样的事情。
有解决这个问题的方法,例如通过将您的日期存储在excel中作为字符串(如您在评论中提到的)。然而,这并不总是可能的。
也许甚至有可能加载字符串,因为Excel会显示它给定你的当前设置,但这当然不是很便携,如果你改变你的设置,你可能很容易遇到麻烦,因为下面的计算在Matlab将不再匹配格式。更不用说您需要分别解析不同格式的日期列,即使它们位于同一个文件中。
因此,我建议如下:
读取数据,并在MATLAB中解析
当然你可能想要一个日期,但即使你把它解析成一个字符串,这仍然是推荐的通用解决方案。
您在注释中提到要使用datevec,因此您应该能够使用以下两个选项之一:
DateVector = datevec(DateNumber)
根据你的来源,你可能需要从数字中添加或减去一个常数来得到正确的日期。(可能Excel不需要这样,但只要尝试一次。)