Why is day() function throwing me this error: Check for missing argument or incorrect argument data type in call to function 'day'?
2 views (last 30 days)
Show older comments
Francisco Javier Pérez Sánchez
on 27 Mar 2020
Commented: Shalini K
on 11 May 2020
Having this task:
Perform a regression model over the normalized active cases in China using the model.....(long assignment that I'm not worried about). Tip: To convert from datetime to a numeric variable for the regression, use x=day(date-min(date(:)))+1; being “date” the datetime vector return from getdata function.
This is what I have until now:
function RP_ejercicio1
data = readtable('COVID-19.csv');
[active_res, confirmed_res, death_res, recovered_res, date] = getdata(data, 'China', 93/147);
x=day(date-min(date(:)))+1;
y = active_res;
yp = log(y./x);
a = [x ones(size(x))];
sol = inv(a'*a)*(a'*yp);
b = sol(1);
c = sol(2);
a = exp(c);
end
I'm getting an error in this line
x=day(date-min(date(:)))+1;
and I don't get it. From getdata function I'm getting successfully a 1x50 datetime array fulled with dates and stored in my date variable. What am I doing wrong?
1 Comment
Shalini K
on 11 May 2020
letterds = datastore("*_M_*.txt"); data = read(letterds); data = scale(data); plot(data.X,data.Y) axis equal plot(data.Time,data.Y) ylabel("Vertical position") xlabel("Time")
Accepted Answer
Cris LaPierre
on 27 Mar 2020
Edited: Cris LaPierre
on 27 Mar 2020
Based on the arithmetic you are doing with your date, I think you want to use the function days instead of day. The former returns the number of elapsed days as a duration, which is typically what you want when you subtract two dates. The later extracts the day number from a date, as in day of the month.
x=days(date-min(date(:)))+1;
2 Comments
More Answers (0)
See Also
Categories
Find more on Introduction to Installation and Licensing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!