首先,我已在此链接中放置了一些股票数据
https://drive.google.com/open?id=0B9hoshsWoDHGOGs1SGFDTG9BYlk
由代码段中的第1行加载以演示问题。
在R2016a及更早版本中运行但在R2016b中失败的代码在此处:
FileName = '~/TestFile.csv';
tmpData = readtable(FileName);
Data = tmpData(:,3:size(tmpData, 2));
names = fieldnames(Data);
DataArray=table2array(Data);
DateCell = table2cell(tmpData(:,1));
count = size(Data, 2);
for i=1:count
tmpStr = char(names(i));
% fprintf('%s\n', tmpStr);
TS(i) = timeseries(DataArray(:,i), DateCell, 'Name', tmpStr);
end
在R2016b中,DateCell变量似乎是一个1091个单元格数组,其中包含' 1x1 datetime'导致调用时间序列失败的元素。在Matlab的所有早期版本中,它似乎是一个1091单元阵列,其中填充了在时间序列中正常工作的日期。
因此,假设拥有更好技能的人可以验证更多,那么编码的变化是什么来解决这个问题?
提前致谢!
答案 0 :(得分:1)
您可以通过将'DatetimeType'
参数添加到readtable
来取回R2016a及之前的行为,如下所示:
tmpData = readtable(FileName, 'DatetimeType', 'text')
release notes中提到了这种不兼容性。