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 commentaires

Peter Perkins
Peter Perkins le 7 Juin 2019
Kojiro answered the question per se, but the real question is how you ended up with that table to begin with. If you have a CSV file, or a spreadsheet, you should use readtable (or in recent versions readtimetable). That would typically give you a table with a datetime and two doubles.
There may be something funny in your file, though.
Tim W.
Tim W. le 7 Juin 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 le 19 Juin 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.

Connectez-vous pour commenter.

 Réponse acceptée

Kojiro Saito
Kojiro Saito le 5 Juin 2019

0 votes

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

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by