How to convert a string data time to a number

Not sure if i am going about this the right way but here goes...
Originally trying to plot data from a table until I realized the data string format is incorrect i.e '10/08/2018 6:30:32 PM' Im assuming the function wont plot the character array hence I would need to convert the string to number format.
I extracted the column from a table and converted into a cell array...
if true
% Datestring = {converttime};
end
if true
% formatIn = '';
end
if true
% datenum(DateString,formatIn);
end
Im unsure what to put in the variable formatIn? Are you telling matlab to convert using a predefined number dateformat?
Appreciate some help with this.

Answers (4)

Try this:
dn = datenum('10/08/2018 6:30:32 PM', 'dd/mm/yyyy HH:MM:SS AM')
q = datestr(dn) % Check Conversion

1 Comment

Responding to this Answer
The documentation is absolutely opaque on using scatter with table objects. I have a timetable, table and cell arrays (that I created from the same original timetable with information from another Question), and the only way I could get it to work was to use the cell array, and then concatenate it to a numeric array.
Here, the cell array is called ‘TT_C’, the first 2 columns are datetime objects, and the rest are numeric:
figure
scatter([TT_C{:,1}], [TT_C{:,9}])
grid
Perhaps others can get it to work with table objects. It eludes me.

Sign in to comment.

Don't use datenums. Convert your text to datetime:
>> datetime('10/08/2018 6:30:32 PM','InputFormat','MM/dd/yyyy hh:mm:ss a')
ans =
datetime
08-Oct-2018 18:30:32
and then just plot (at least in recent versions of MATLAB).
I think I may have asked this answer incorrectly.. I have an table array with date/time in the format as e.g '10/08/2018 6:30:32 PM'
This is saved in a variable called dateamp which contains 258268*1 values.
Im trying to plot a scatter graph by using the dateamp table variable against another table variable which holds numeric values.
Quote me if i am wrong but do I need to convert the dateamp date/time format into a cell array to be able to plot the scatter graph?

1 Comment

If the variable in your table is a datetime, then no, at least in recent versions. I can't recall when scatter began datetime support. In any case, the plot function has since R2014b, and you can make a scatter plot with that.

Sign in to comment.

Categories

Asked:

on 31 Oct 2018

Commented:

on 1 Nov 2018

Community Treasure Hunt

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

Start Hunting!