感谢您关注我的问题。
我在将xlsx文件导入到MATLAB R2016a (Mac )中遇到了一个特殊的问题,更具体地说是导入日期。
我正在使用下面的代码从xlsx文件' bank _statements.xlsx‘中的工作表'Past’导入我的银行对帐单历史记录。还包括第1列的一个片段,日期格式为dd/mm/yyyy。
[ndata, text, data] = xlsread('bank_statements.xlsx','Past');

我的理解是,MATLAB使用过滤器来区分文本和数字数据,这些数据分别表示在“text”和“data”数组中,而“ndata”是一个包含所有内容的单元格数组。以前,在MATLAB 2015a (Windows)上运行脚本时,来自第一列的日期被视为字符串并填充到“text”数组中,而在MATLAB 2016a (Mac OS X)上,文本数组的第一列为空。我认为这是因为对xlsread函数解释日期信息的方式进行了更新。
这就是奇怪的部分。通过Variables窗口检查文本数组,并在Command window中引用显示text(2,1)为空时,在此“空”单元格上成功执行datenum函数会以数字格式显示日期:

虽然我可以通过使用ndata数组来解决这个问题(或者忽略上面对我来说没有意义的事实),但我真的很想了解这里发生了什么,而一个看似空的单元格实际上可以保存哪些操作可以执行的信息。
诚挚的问候,
吉姆
发布于 2016-09-06 04:24:08
我能够复制你的问题,虽然我不能回答正在发生的错综复杂的事情,但我可以提供一个建议。我只能在转换非日期文本字符串时复制它,这使我相信导入数据的方式可能存在问题。
而不是:
[ndata,text,data] = xlsread('bank_statements.xlsx','Past');如果您有@convertSpreadsheetDates函数,那么可以尝试添加它,以及您想要导入的值的范围,例如
[ndata,text,data] = xlsread('bank_statements.xlsx','Past','A2:A100','',@convertSpreadsheetDates);可能不是你想要的,但它可能会有帮助!
https://stackoverflow.com/questions/39336452
复制相似问题