MATLAB: SOS: How to use datenum for a vector ?

datedatenum

today = datenum('20110609','yyyymmdd');
today =
734663
D = 20110609;
d = datenum('D','yyyymmdd')
d =
734504
Why cannot the above code work ???????????????????
d1 = datenum('20110610','yyyymmdd');
d2 = datenum('20110716','yyyymmdd');
d2-d1 % it gives me 36, number of days between these two dates
HOWEVER, if I have a vector of time D(N,1), N is more than 100 K.
It looks like this: (and not sorted)
maturity =
[20110618
20110619
20110716
20110718
20110719
20111217
...];
And I wanna to get a vector of tenor, from the date in the vector to today's date: 20110610.
How may I do that? Obviously I cannot type them in…
Any experts, plz help! Thx in advance!

Best Answer

a=[20110711 20110712 20110712];
b=datenum(arrayfun(@num2str,a,'un',0),'yyyymmdd');
tenor=b-datenum('20110610','yyyymmdd')