Excel MATLAB xlsread函数导入日期

Excel MATLAB xlsread函数导入日期,excel,matlab,date,Excel,Matlab,Date,谢谢你看我的问题 我在将xlsx文件导入MatlabR2016a(MacOSX)时遇到了一个特殊的问题,更具体地说是导入日期 我正在使用以下代码从xlsx文件“bank_statements.xlsx”中的工作表“pass”导入我的银行对账单历史记录。还包括第1列中日期为dd/mm/yyyy格式的片段 [ndata, text, data] = xlsread('bank_statements.xlsx','Past'); 我的理解是,MATLAB使用过滤器区分文本和数字数据,它们分别在“文

谢谢你看我的问题

我在将xlsx文件导入MatlabR2016a(MacOSX)时遇到了一个特殊的问题,更具体地说是导入日期

我正在使用以下代码从xlsx文件“bank_statements.xlsx”中的工作表“pass”导入我的银行对账单历史记录。还包括第1列中日期为dd/mm/yyyy格式的片段

[ndata, text, data] = xlsread('bank_statements.xlsx','Past');

我的理解是,MATLAB使用过滤器区分文本和数字数据,它们分别在“文本”和“数据”数组中表示,而“ndata”是包含所有内容的单元数组。以前,在MATLAB 2015a(Windows)上运行脚本时,第1列中的日期被视为字符串并填充在“文本”数组中,而在MATLAB 2016a(Mac OS X)上,文本数组的第1列为空。我认为这是因为xlsread函数解释日期信息的方式已经更新

这是奇怪的部分。在通过变量窗口检查文本数组并在命令窗口中引用时,文本(2,1)显示为空,在该“空”单元格上执行datenum函数成功地以编号格式给出日期:

虽然我可以通过使用ndata阵列来解决这个问题(或者忽略上面对我来说没有意义的事实),但我真的很想了解这里发生了什么,而一个看似空的单元格实际上可以保存可以对其执行操作的信息

致以最良好的祝愿


吉姆

我能够复制你的问题,尽管我无法回答正在发生的复杂问题,但我可以提供一个建议。我只有在转换字符串的非日期文本时才能复制它,这让我相信数据导入的方式可能有问题

而不是:

[ndata,text,data] = xlsread('bank_statements.xlsx','Past');
如果您有
@convertSpreadsheetDates
函数,可以尝试添加该函数以及要导入的值的范围,即

[ndata,text,data] = xlsread('bank_statements.xlsx','Past','A2:A100','',@convertSpreadsheetDates);

可能不是你想要的,但可能会有帮助

我能够复制你的问题,尽管我无法回答正在发生的复杂问题,但我可以提供一个建议。我只有在转换字符串的非日期文本时才能复制它,这让我相信数据导入的方式可能有问题

而不是:

[ndata,text,data] = xlsread('bank_statements.xlsx','Past');
如果您有
@convertSpreadsheetDates
函数,可以尝试添加该函数以及要导入的值的范围,即

[ndata,text,data] = xlsread('bank_statements.xlsx','Past','A2:A100','',@convertSpreadsheetDates);
可能不是你想要的,但可能会有帮助