У меня есть большой файл csv (6.5millions x 25) и попытка загрузить его в Matlab. Я уже пробовал xlsread
, csvread
, но не могу получить удовлетворительные результаты. Я читал, что могу достичь этого, используя textscan
.Чтение большого .csv файла MATLAB с запятыми
Мои данные выглядят следующим образом:
date_time;writetime;F1;F2;F3;R1;h12;b12;h_main;
01.01.2016 0:00:01;504910801075;1;1;1;3,94;799;1515;3,877;
01.01.2016 0:00:02;504910802314;1;1;1;3,96;795;1516;3,857;
Первая строка заголовка. Другие строки - это данные. Все остальные строки имеют одинаковый формат.
Мой код:
fileID = fopen('value1.csv','r');
formatSpec = '%s; \n';
formatSpec1 = '%s%f %f %f %f %f %f %f %f %f %f\n';
A1 = fscanf(fileID, formatSpec);
A2 = textscan(fileID, formatSpec1,'Delimiter',{';', ','});
Я прочитал заголовок A1
это нормально:
A1 =
date_time;writetime;F1;F2;F3;R1;h12;b12;h_main;
и считывать данные A2
тоже.
A2 =
{1x1 cell} [5.0491e+11] [1] [1] [1] [3] [94] [799] [1515] [3] [877]
Но как читать 3,94
значения? Потому что это может быть только 4
или 0,064
значение в этой колонке.
Надейтесь на помощь!
Эти цифры всегда имеют десятичный разделитель? например, 4,00 – Finn
Ваши поля разделяются символом ';', поэтому не используйте запятую ',' как разделитель полей. –
@ Finn no, это может быть просто '4'. –