Convert table and plot dates

24 visualizzazioni (ultimi 30 giorni)
Tim W.
Tim W. il 5 Giu 2019
Commentato: Peter Perkins il 19 Giu 2019
Hi,
I am kinda struggeling with a simple problem. I am trying plot the data of a table; but i can't get seem to conver the data into numbers and plot them.
The table looks like this.
Date Data1 Data2
________________ _____________ ____________
'12-07-2018 21:45' '-233.05' '-221.68'
'12-07-2018 22:00' '-233.33' '-231.18'
'12-07-2018 22:15' '-232.67' '-227.91'
'12-07-2018 22:30' '-232.95' '-226.35'
'12-07-2018 22:45' '-233.18' '-226.14'
'12-07-2018 23:00' '-233.02' '-228.94'
I tried using str2num etc. but nothing works.
  3 Commenti
Tim W.
Tim W. il 7 Giu 2019
You are correct, normaly it should give me one row with a datetime and x-number of collums as numbers. The Problem is just that I am having multiple csv files and they all start at the same date, but certain instruments did start their measurments. This means some files have no number for the first thousands rows or so (just the date).
If there is no number in the first row Matlab seems to think the whole collum must be characters.
Peter Perkins
Peter Perkins il 19 Giu 2019
If you are using readtable, use detectimportoptions and force the column to be read in as numeric. A simpler version is to specify the Format parameter.

Accedi per commentare.

Risposta accettata

Kojiro Saito
Kojiro Saito il 5 Giu 2019
You can convert cell arrays which contain characters using str2double. Here is a sample code.
% Convert to datetime
data2.Date = datetime(data2.Date, 'InputFormat', 'MM-dd-yyyy HH:mm');
% Convert to double
data2.Data1 = str2double(data2.Data1);
data2.Data2 = str2double(data2.Data2);
plot(data2.Date,data2.Data1,'DisplayName','data2.Data1');
hold on;
plot(data2.Date,data2.Data2,'DisplayName','data2.Data2');
hold off;
legend

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by