I'm new to Octave and I am trying to read the month number of a datetime values in order to do a equation with it. The problem is every time I try to read it I get the same dimensional error and i don't know why...
Here is my code:
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)
The result is always this:
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
Also, when I try to return the year or day it always gives me the right value, hope someone can help me, it would be very appreciated.
The month
function can only handle 1x1 data. That's what your error is saying. Since your date vector is 32x1, you can't use that function the way you are doing.
However, you can use a for loop, and store the values in a vector:
[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