Effacer les filtres
Effacer les filtres

slitting a number into year, mont and day

1 vue (au cours des 30 derniers jours)
Johannes Deelstra
Johannes Deelstra le 19 Avr 2013
I have a column(a(:,1)) containing numbers like;
19900101
19900102
19900103
19900104
19900105
19900106
19900107
19900108
19900109
19900110
The numbers represent year(1:4), month(5:6) and daynumber(7:8).
How to I split these numbers into year, number of month and daynumber?
Thanks
Johannes

Réponses (2)

Walter Roberson
Walter Roberson le 19 Avr 2013
years = floor( a(:,1) ./ 10000);
months = mod( floor( a(:,1) ./ 100 ), 100);
days = mod( a(:,1), 100 );
  1 commentaire
Jan
Jan le 22 Avr 2013
I'd prefer this method, because it does not convert the numbers to strings and back to numbers again.

Connectez-vous pour commenter.


Daniel Shub
Daniel Shub le 19 Avr 2013
It is not clear what your "a" is. If it is a numeric array
a = [ 19900101
19900102
19900103
19900104
19900105
19900106
19900107
19900108
19900109
19900110
];
you need to convert it to a char array
a = int2str(a);
Obviously if it is already a char array, you do not need to convert it. You then need to grab the sections you want, and possibly convert them back into numbers ...
year = str2num(a(:, 1:4));
month = str2num(a(:, 5:6));
day = str2num(a(:, 7:8));
  2 commentaires
Johannes Deelstra
Johannes Deelstra le 22 Avr 2013
Thanks very much Daniel and Walter, useful and very effective.
Walter Roberson
Walter Roberson le 22 Avr 2013
If the problem is solved, please Accept an Answer.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by