Help with reading and plotting date string

12 views (last 30 days)
Vengatesan
Vengatesan on 1 Mar 2016
Commented: Shern Wei Lee on 19 Mar 2021
I'm reading dates from an excel sheet using matlab. Matlab writes the data as '22/01/2015 13:30:00' '22/01/2015 14:00:00' '22/01/2015 14:30:00' '22/01/2015 15:00:00' '22/01/2015 15:30:00' '22/01/2015 16:00:00' '22/01/2015 16:30:00' '22/01/2015 17:00:00' '22/01/2015 17:30:00' '22/01/2015 18:00:00' '22/01/2015 18:30:00' '22/01/2015 19:00:00' '22/01/2015 19:30:00' '22/01/2015 20:00:00' '22/01/2015 20:30:00' '22/01/2015 21:00:00' '22/01/2015 21:30:00'
I would like use this date on the x-axis and to make a plot with a variable in y-axis.
Can any one help me how to make a plot with this date data. Thanks Venki

Answers (3)

Jos (10584)
Jos (10584) on 1 Mar 2016
Convert the dates (in variable D), using DATENUM, plot, and use DATETICK to set the x-ticks to a specific format
plot(datenum(D), YVALUES)
datetick('x',31) % or any other format

Florian
Florian on 1 Mar 2016
Use x = datenum( dates,'dd/mm/yyyy HH:MM:SS') to convert your strings to the internal matlab date number. Plot your x y data normally and use datetick('x',dateFormat) to format your x-axis. See http://ch.mathworks.com/help/matlab/ref/datetick.html
Regards, Florian
  2 Comments
Vengatesan
Vengatesan on 1 Mar 2016
Thanks for your response. I have already tried with what you suggested before writing for help. I think the problem lies in reading the data from the excel file. I use
[D,text] = xlsread('C:\...D\...xlsx',1,'A2:B2182');
This excel file has many columns, the first column is the date and second colm is number and so on.
When I use the above function to read, the date is stored in 'text', but within the quotation as '22/01/2015 14:00:00'. This is what causing problems when the datenum function.
If I could remove the 'quotation', example 22/01/2015 14:00:00, and use the datenum function it works well. Can you let me know how to read the data without quotation. If the result look like below then i can mange
Input, date =['08/03/2015 18:00:00' '08/03/2015 18:30:00' '08/03/2015 19:00:00' '08/03/2015 19:30:00' '08/03/2015 20:00:00' '08/03/2015 20:30:00' '08/03/2015 21:00:00' '08/03/2015 21:30:00' '08/03/2015 22:00:00' '08/03/2015 22:30:00' '08/03/2015 23:00:00' '08/03/2015 23:30:00']
expected output
date =
08/03/2015 18:00:00 08/03/2015 18:30:00 08/03/2015 19:00:00 08/03/2015 19:30:00 08/03/2015 20:00:00 08/03/2015 20:30:00 08/03/2015 21:00:00 08/03/2015 21:30:00 08/03/2015 22:00:00 08/03/2015 22:30:00 08/03/2015 23:00:00 08/03/2015 23:30:00
Jos (10584)
Jos (10584) on 1 Mar 2016
Did you try? DATENUM seems to ignore quote marks
datenum('''22/02/16 13:02:34''')

Sign in to comment.


Jan
Jan on 1 Mar 2016
You can convert the shown cell string useing datenum and use datetick to display the dates as tick lables.

Products

Community Treasure Hunt

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

Start Hunting!