matlab读取excel时间数据后,截取年份时出错

[~,~,raw]=xlsread('C:\Users\ThinkPad\OneDrive\FOF\latestmatlab\NV.xlsx','类型_4');%读取的e... [~,~,raw]=xlsread('C:\Users\ThinkPad\OneDrive\FOF\latest matlab\NV.xlsx','类型_4');
%读取的excel文件中第一列是时间,后面几列是指数数据
raw = raw(2:end,:);
ID = year(raw(:,1))*12;

就在这个取 year的时候,提示:
Error using datevec (line 103)
The input to DATEVEC was not an array of strings.

Error in year (line 37)
c = datevec(d(:));

Error in year_return (line 4)
ID = year(raw(:,1))*12;
展开
 我来答
射手座lll
2015-10-16 · TA获得超过820个赞
知道小有建树答主
回答量:688
采纳率:88%
帮助的人:412万
展开全部

我猜是不是你的excel里面的日期那一列的数据格式是日期型  这样MATLAB是没办法识别的吧。他只会把日期转换为数字或者字符。你可以尝试把excel第一列的格式设置为数字,然后用datestr函数转换成日期;

我试了一下 可以

clc,clear

myd=xlsread('my.xlsx');

datestr(myd,'mmm/dd/yy')

%不过还有一个问题我也搞不懂   为什么日期向后移了一位。  郁闷!

更多追问追答
追问
matlab能读出来,但是是cell  ,datevec只能读char的,我现在在外面,等会儿回去试试你说的方法吧~
追答
你确定第一咧读出来了吗?cell有可能是其他列的数据吧,我的机器上没有读出来耶!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式