"Error using textscan: Badly formed format string" with R2012b
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I want to read about 14 million rows of data from an .csv file an save it in a cell array.
The .csv file looks like this:
vehicle_id;_date;measurement_start;measurement_end
100454;2016-09-11T15:01:14.769Z;2.620;6.400
100454;2016-09-11T15:01:15.769Z;7.820;10.400
100452;2016-09-11T15:01:16.769Z;3.620;9.400
100453;2016-09-11T15:01:17.769Z;4.620;5.400
100454;2016-09-11T15:01:18.769Z;20.620;25.400
100458;2016-09-11T15:01:19.769Z;8.620;16.400
100454;2016-09-11T15:01:20.769Z;45.620;50.400
This is my Script to create the cell Array:
clear;
[filename, pathname] = uigetfile({'*.csv','All Files (*.*)'}, 'Pick a file');
filename = [pathname filename];
delimiter = ';';
startRow = 2;
formatSpec = '%f %{yyyy-mm-ddTHH:MM:SSZ}D %f %f %*{^\n}';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'HeaderLines' ,startRow-1, 'ReturnOnError', false);
fclose(fileID);
The mistake is in formatSpec when I try to format the Date and Time.
It's one easy mistake, but I can't figure it out.
0 commentaires
Réponse acceptée
Jan
le 23 Fév 2017
Modifié(e) : Jan
le 23 Fév 2017
Use this instead:
formatSpec = '%f %s %f %f %*{^\n}';
and convert the dates afterwards using datenum. I do not remember if datenum of R2012b can handle this format, but in case of troubles or if this is time critical, you can use FEX: DateStr2Num (use the format spec 31).
0 commentaires
Plus de réponses (1)
Walter Roberson
le 23 Fév 2017
The %D format spec was not supported until R2013b.
2 commentaires
Walter Roberson
le 23 Fév 2017
[num2cell(dataArray{1}), dataArray{2}, num2cell(dataArray{3}), num2cell(dataArray{4})]
Voir également
Catégories
En savoir plus sur Other Formats dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!