Finding array elements that include a specified combination of values?

6 vues (au cours des 30 derniers jours)
Anna
Anna le 23 Avr 2011
I have the following problem. I need to match two sets of dates in two separate arrays, but the formats are different (YYYYMM & YYYYMMDD), and in one of the arrays the dates are randomly mixed.
So I'd need a way to refer to specific parts of an element. As I have the correct timeline with YYYYMM dates, the easieast thing would be to somehow require the beginning of the YYYYMMDD element to match YYYYMM?
Thank you so much in advance!

Réponse acceptée

Andrew Newell
Andrew Newell le 23 Avr 2011
You can extract the parts of the date using
yourDate = '201105';
switch length(yourDate)
case 6
[Y,M] = datevec(yourDate,'yyyymm')
case 8
[Y,M,D] = datevec(yourDate,'yyyymmdd')
otherwise
error('Invalid date string length.')
end
Y =
2011
M =
5
The same sequence with yourDate = '20110514' gives
Y =
2011
M =
5
D =
14
  7 commentaires
Anna
Anna le 1 Mai 2011
Sorry for having bothered you, I managed to get around the problem by using the following code:
datum1=zeros(601,1);
datum2=zeros(601,1);
datum3=zeros(601,1);
for k=2:601
str= num2str(winners_aboveRF(k,1));
[Y,M,D] = datevec(str,'yyyymmdd');
datum1(k)=Y;
datum2(k)=M;
datum3(k)=D;
end
I know it's not classy, but it works, so I'm happy. If you however would happen to know a more elegant solution I'd be happy to hear it.
Thank you again for all your help!
Andrew Newell
Andrew Newell le 1 Mai 2011
Are you sure that your code works? What do you get for Y and M if you type [Y,M,D] = datevec('201112','yyyymmdd')?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by