Split numerical double array to multiple columns?

7 次查看(过去 30 天)
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?

采纳的回答

the cyclist
the cyclist 2017-3-22
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 个评论
Kate
Kate 2017-3-22
Floor, thats what I was looking for, thanks! I was doing a bunch of num2str, str2num messiness. Thanks :)
the cyclist
the cyclist 2017-3-23
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.

请先登录,再进行评论。

更多回答(1 个)

Kate
Kate 2017-3-22
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));

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by