Select parts of number from a cell of many numbers to put in a variable?

2 views (last 30 days)
Hi.
I have used
[num text raw] = xlsread(filename)
to get access to the cells on a bastardised xml/csv type text file. I can read values from cells using
raw(row,col)
This is fine, however my question is, one of these cells contains the date in format
20140802
I wish to select parts of the number and assign variables for month(08), day(02), year(2014).
How exactly can I achieve this? I can't seem to find an answer to what seems to be an easy problem, help appreciated!

Accepted Answer

Ben11
Ben11 on 12 Aug 2014
Edited: Ben11 on 13 Aug 2014
The easy way would be:
year = YourDate(1:4)
month = YourDate(5:6)
day = YourDate(7:8)
Then you can convert to digits with str2double for example. Is that what you mean?
  9 Comments
Ross
Ross on 13 Aug 2014
I tried this (minus hours and minutes)
titleName = sprintf('Graph Plot at on %d/%d/%d',day,month,year)
title(titleName)
No error but the title is just blank. Also, I can't seem to add my 'time' variable with this syntax without it just printing time, whereas when I use:
titleName = (['Graph Plot at', time, 'on', Day, Month, year]);
title(titleName)
It does print the value of the variables except it's as though it's carriage returning after each comma. As mentioned, it is coming out like this:
Graph Plot at
time
on
06
08
2013
Wheras I would like it to display on the title as
Graph Plot at (time) on (day)(month)(year)
So close, it's probably a simple thing I'm missing or some title formatting option I haven't encountered.

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 12 Aug 2014
a=20140802
b=datevec(datenum(num2str(a),'yyyymmdd'))
b(1) % is the year
b(2) % the month
b(3) % the day
  3 Comments
Ross
Ross on 13 Aug 2014
Edited: Ross on 13 Aug 2014
Hi, thanks for replying.
This code sorta works, I get the date parsed but it displays in column format, so my date cell displays like so:
2013
8
6
0
0
0
Original data, ie variable b looks like '20130806'. How to get it so I have variables such as:
Year = 2013
Month = 08
Day = 06
I don't quite understand this line in your code:
c=datevec(cellfun(@(x) datenum(x,'yyyymmdd'),b))
EDIT: Actually when I look at 'c' in the main window it displays as:
2013 8 6 0 0 0
This is for displaying in a title of a 2d plot. The title on the plot displays in columns and has the 3 unnecessary zero's which is why I was looking to separate the year, month and day to use easier with the title code which I have as:
titleName = (['Graph Plot at', time, 'on', day, month, year]);

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by