I have this code creating a list of months, however the output is on the last month, Dec. Is it possible to create a matrix of the individual month in order to incorporate into another code?

7 views (last 30 days)
ii = 1; %counter
% creating a list of months
while ii<=12
t = datetime(2016,ii,01):calweeks(5):datetime(2016,ii+1,01);
m(ii) = (month (t,'shortname'));
ii = ii+1;
end

Answers (2)

Nikhil Vyas
Nikhil Vyas on 25 Apr 2016
I'm not sure about what output you require from this code so I'm assume that you just want a cell array with month values.
It's considered good to avoid using loops in MATLAB. Thus, the code you've written is generally considered inefficient. I have made the modifications to get the output that I assume you want.
temp = datetime(2016,01,01):calmonths(1):datetime(2016,12,31)
month_cell_array = month(x, 'name');
month_cell_array now contains the names of the months.
In case you expected some other output, let me know. :)

tpn
tpn on 4 Oct 2022
Edited: tpn on 4 Oct 2022
string(month(datetime(1,1:12,1),'shortname'))
ans = 1×12 string array
"Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
This should work well

Categories

Find more on Loops and Conditional Statements 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!