MATLAB: Create a monthly date vector of serial numbers

datenumdatevec

Hi everyone,
I spent hours trying this and I am sure it must be easy but I can't get my head around it. What I want is to create a vector that contains serial numbers for each month for 30 years, so that I can use this vector for the x axis of a plot. (so e.g. I want Jan 1990, Feb 1990, March 1990 etc in serial numbers)
why doesn't something simple like this work? datenum({'01-Jan-1900':'01-Nov-2011'})
Any help is appreciated Thanks so much Sandra

Best Answer

You are "almost" right, but what you're saying to matlab with,
datenum({'01-Jan-1900':'01-Nov-2011'})
is:
"Take the string '01-Jan-1900' (which has numeric value of 48 49 45 74 97 110 45 49 57 48 48) and apply the colon operator till the string '01-Nov-2011' (48 49 45 78 111 118 45 50 48 49 49)"
what you have to do is first convert the string to serial dates and then apply the colon...but this approach is not precise because you want one month intervals and months are irregular.
The solution is the following:
datenum(1900,1:120,1)
The months in excess of the first year will augment the year to 1901 and so on.