SOS: How to use datenum for a vector ??
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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!
0 comentarios
Respuesta aceptada
Fangjun Jiang
el 10 de Jun. de 2011
a=[20110711 20110712 20110712];
b=datenum(arrayfun(@num2str,a,'un',0),'yyyymmdd');
tenor=b-datenum('20110610','yyyymmdd')
4 comentarios
Fangjun Jiang
el 10 de Jun. de 2011
Great. Thanks Walter.
@Zoe, follow Wlater's improvement
a=[20110711 20110712 20110712];
tenor=datenum(num2str(a'),'yyyymmdd')-datenum('20110610','yyyymmdd');
What does "tenor" mean?
Más respuestas (1)
Walter Roberson
el 10 de Jun. de 2011
datenum('D') attempts to convert the string "D" to a date. With all the various default values that are applied when fields are missing, it comes out as being Jan 1 of the current year.
datenum(D) would use the value of the variable D. However, it is not valid to pass a scalar integer to datenum() to be converted.
datenum(cellstr(num2str(maturity)),'YYMMDD') would do your entire vector.
2 comentarios
Ver también
Categorías
Más información sobre Time Series Objects en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!