.csv Date and Time assigned Data Import
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Georg Söllinger
am 4 Nov. 2016
Kommentiert: Georg Söllinger
am 7 Nov. 2016
Hi dear Community,
I need to import csv data from Trials into MATLAB. The dataset is as follows:
2016/11/02 17:51:54,017;256,451812744141;0;0;0,130208298563957
I tried to achieve the import with csvread, but I guess, matlab cannot handle date and time in one cell?! Another problem may be, that the decimal delimiter symbol is ',' and not '.'. Actually, I don't need the date, I only need the time and the difference of the time between adjacent measurements as an additional column.
Help is very appreciated, thanks therefore in advance! Best Wishes, Georg
0 Kommentare
Akzeptierte Antwort
Jeremy Hughes
am 7 Nov. 2016
Hi George,
If you're using R2016b you can import this directly, but it will take a little bit of configuration The following should work:
opts = detectImportOptions(yourfilename,'Delimiter',';')
opts.VariableTypes = {'datetime','double','double','double','double'};
opts = setvaropts(opts,1,'InputFormat','yyyy/MM/DD HH:mm:ss,SSS');
opts = setvaropts(opts,2:5,'DecimalSeparator',',');
T = readtable(yourfilename,opts)
1 Kommentar
Weitere Antworten (1)
dbmn
am 4 Nov. 2016
Hi Georg,
if you already extracted the required string, it can easily be converted into a datetime variable using a custom inputformat (that is also capable of dealing with commas)
mytimevar = datetime('2016/11/02 17:51:54,017', 'InputFormat', 'yyyy/MM/DD HH:mm:ss,SSS');
if you still need to extract the string I may suggest stringsplit
2 Kommentare
dbmn
am 4 Nov. 2016
I just checked with a csv-file that i created by copying your example line 5 times.
Here is what I found
- csvread gives you the error you specified (most likely due to the fact, that the file is not "real csv" due to the additional commas
- one solution is to use readtable
data = readtable('20161102_R05_1.csv');
- Another possibility with more control is to use textscan
fid = fopen('20161102_R05_1.csv','r');
data={};
while ~feof(fid)
data(end+1,:) = textscan(fid, '%s%s%s%s%s', 1, 'delimiter',';');
end
fclose(fid);
Siehe auch
Kategorien
Mehr zu Text Data Preparation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!