微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我尝试从文件中读取月份数时出现尺寸错误

如何解决当我尝试从文件中读取月份数时出现尺寸错误

我是 Octave 的新手,我正在尝试读取日期时间值的月份数,以便用它做一个等式。问题是每次我尝试阅读它时都会遇到相同的尺寸错误,我不知道为什么...

这是我的代码

clear 
clc
pkg load io
pkg load financial 

[num,date] = xlsread('EMA_VR 2019.xlsx','A184:A215');


num=datenum(date);

DataString=datestr(date)

m= month(num,DataString)

结果总是这样:

DataString =

01-Jul-2019
02-Jul-2019
03-Jul-2019
04-Jul-2019
05-Jul-2019
06-Jul-2019
07-Jul-2019
08-Jul-2019
09-Jul-2019
10-Jul-2019
11-Jul-2019
12-Jul-2019
13-Jul-2019
14-Jul-2019
15-Jul-2019
16-Jul-2019
17-Jul-2019
18-Jul-2019
19-Jul-2019
20-Jul-2019
21-Jul-2019
22-Jul-2019
23-Jul-2019
24-Jul-2019
25-Jul-2019
26-Jul-2019
27-Jul-2019
28-Jul-2019
29-Jul-2019
30-Jul-2019
31-Jul-2019
01-Aug-2019

error: horizontal dimensions mismatch (1x1 vs 32x1)

error: called from
    
month at line 40 column 7

    Teste at line 13 column 2

另外,当我尝试返回年份或日期时,它总是给我正确的值,希望有人能帮助我,将不胜感激。

解决方法

month 函数只能处理 1x1 数据。这就是你的错误所说的。由于您的日期向量是 32x1,因此您不能像现在这样使用该函数。

但是,您可以使用 for 循环,并将值存储在向量中:

[num,date] = xlsread('EMA_VR 2019.xlsx','A184:A215');

Month = zeros(size(num));          % Month will have the same dimensions as num

for i=1:length(Month)              % Loops through the length of Month
    Month(i) = month(num(i));      % Applies the month function to the i-th entry of num
end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。