Импорт CSV-файла со значениями в кавычках
Я хочу импортировать CSV-файл (data.csv), который структурирован следующим образом
Area,MTU,Biomass MW,Lignite MW
CTA|DE(50Hertz),"01.01.2015 00:00 - 01.01.2015 00:15 (CET)","1227","6485"
CTA|DE(50Hertz),"01.01.2015 00:15 - 01.01.2015 00:30 (CET)","","6421"
CTA|DE(50Hertz),"01.01.2015 00:30 - 01.01.2015 00:45 (CET)","1230","n/e"
CTA|DE(50Hertz),"01.01.2015 00:45 - 01.01.2015 01:00 (CET)","N/A","6299"
Я пытался использовать textscan
который работает довольно хорошо, но процесс останавливается, когда достигаются пустые кавычки. Аргумент 'EmptyValue',0
не работает.
file = fopen('data.csv');
data = textscan(file, '%q %q "%f" "%f"', 'Delimiter', ',',...
'headerlines', 1,'TreatAsEmpty', {'N/A', 'n/e'}, 'EmptyValue',0);
fclose(file);
Любая идея, как импортировать весь файл.
1 ответ
textscan(file,'%q%q%q%q%[^\n\r]','Delimiter',',','headerlines',1);
работал нормально для меня. Вы получаете такие значения, как: "01.01.2015 00:00 - 01.01.2015 00:15 (CET)" Но для них тривиально написать отдельный анализатор. Не пытайтесь сделать все это за один шаг. Это причинит вам много боли и страданий. Разбейте его на простые одиночные шаги.
Кроме того, я настоятельно рекомендую щелкнуть правой кнопкой мыши ваш файл в окне "Текущая папка" в Matlab, а затем выбрать "Импортировать данные". Это делает импорт CSV (или файлов с разделенными табуляцией, или файлов данных фиксированной ширины) тривиальным.