Split numerical double array to multiple columns?

11 visualizzazioni (ultimi 30 giorni)
Hey guys,
I'm sure there's a simple workaround for this but I can't seem to find it. I have data with the following format
whos data
Name Size Bytes Class Attributes
data 1095x9 78840 double
data(1:10, 1)
ans =
20090101
20090102
20090103
20090104
20090105
20090106
20090107
20090108
20090109
20090110
It's currently in the format of yearmonthday, but I would like to pull them apart to look at year, month, day. How do I pull, for example, the first 4 numbers from a double array?

Risposta accettata

the cyclist
the cyclist il 22 Mar 2017
Like this?
data = [
20090101
20090102
20090103
20090104
20090105
20090106
20090107
20090108
20090109
20090110]
year = floor(data/10000)
month = floor((data-year*10000)/100)
day = data-year*10000-month*100
  2 Commenti
Kate
Kate il 22 Mar 2017
Floor, thats what I was looking for, thanks! I was doing a bunch of num2str, str2num messiness. Thanks :)
the cyclist
the cyclist il 23 Mar 2017
Glad it helped. The best form of thanks is to upvote and/or accept answers that you've found helpful. This rewards the contributor, and can guide future users to helpful answers.

Accedi per commentare.

Più risposte (1)

Kate
Kate il 22 Mar 2017
Yep! This also works but it's very inefficient in my mind:
w=num2str(data(:, 1));
yr=str2num(w(:, 1:4))
month=str2num(w(:, 5:6));
day=str2num(w(:, 7:8));

Categorie

Scopri di più su Graphics Object Programming in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by