Get tenor between two time points
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
In excel, if some cells are in the format of date, then the difference of the cells gives you the tenor. How can I do that in Matlab?
To be specific I mean I already have some serial data number, say 20110610 and 20110716 (today's date and the expiration date of the contract), and I wanna get the number of days between these two dates. So in this example I'd like to get 36.
If I do: 20110716-20110610, the ans is 106, the same as
datenum(20110716)-datenum(20110610)=106
So my question is, again, how can I get 36 out of these two dates?
Thanks in advance :)
0 commentaires
Réponse acceptée
Andrew Newell
le 10 Juin 2011
d1 = datenum('20110610','yyyymmdd');
d2 = datenum('20110716','yyyymmdd');
d2-d1
8 commentaires
Andrew Newell
le 10 Juin 2011
'D' is not the string version of the number:
>> D = 20110609;
>> D
D =
20110609
>> 'D'
ans =
D
Use d2 = datenum(num2str(D),'yyyymmdd') instead.
Fangjun Jiang
le 10 Juin 2011
You need to learn a little bit about the data type of Matlab.
In "D=20110609", D is the variable name, its value is 20110609. In "d2=datenum('D','yyyymmdd'), D is the capital letter D. What you really need is datenum(num2str(D),'yyyymmdd').
To make it work for vector,
a=[20110711 20110712 20110712];
datenum(arrayfun(@num2str,a,'un',0),'yyyymmdd')
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Time Series Objects dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!