MATLAB xlsread函数导入date
感谢您看看我的问题。
我有一个奇怪的问题,导入一个xlsx文件到MATLAB R2016a(Mac OS X),更具体地说是导入date。
我正在使用下面的代码从xlsx文件“bank_statements.xlsx”的工作表“过去”中导入我的银行对帐单历史logging。 还包括date为dd / mm / yyyy格式的第1列的片段。
[ndata, text, data] = xlsread('bank_statements.xlsx','Past');
我的理解是,MATLAB使用filter来区分文本和数字数据,分别用“text”和“data”数组表示,而“ndata”是包含所有内容的单元格数组。 以前,在MATLAB 2015a(Windows)上运行脚本时,第1列中的date被视为string,并填充到“文本”数组中,而在文本数组的第1列的MATLAB 2016a(Mac OS X)中则为空白。 我以为这是因为xlsread函数如何解释date信息的更新。
这是奇怪的部分。 在通过“variables”窗口检查文本数组并在“命令窗口”中引用显示文本(2,1)为空的情况下,在此“空”单元格上执行datenum函数成功地给出了date的编号格式:
虽然我可以通过使用ndata数组来解决这个问题(或者忽略了上述对我没有意义的事实),但是我真的很想了解这里正在发生的事情,而看起来空的单元格实际上可以保存信息操作可以在上面执行。
最好的祝福,
吉姆
我能够复制你的问题,虽然我无法回答所发生的事情的复杂性,但我可以提出一个build议。 当我转换一串非date文本时,我只能复制它,这导致我相信数据导入方式可能存在问题。
代替:
[ndata,text,data] = xlsread('bank_statements.xlsx','Past');
也许可以尝试添加@convertSpreadsheetDates
函数(如果有),以及要导入的值的范围,即
[ndata,text,data] = xlsread('bank_statements.xlsx','Past','A2:A100','',@convertSpreadsheetDates);
可能不是你在找什么,但它可能有帮助!