用逗号读取大的.csv文件MATLAB

时间:2016-07-19 08:01:14

标签: matlab csv readfile bigdata

我有一个很大的csv文件(650万x 25),并尝试将其加载到Matlab。我已经尝试In [67]: s = pd.Series([1,1,2,2,2,2,3,3,3,3,4,4,5]) s[s!=s.shift()] Out[67]: 0 1 2 2 6 3 10 4 12 5 dtype: int64 xlsread,但无法获得令人满意的结果。我读过我可以使用csvread来实现它。

我的数据看起来像这样:

textscan

第一行是标题。其他行是数据。所有其他行的格式相同。

我的代码:

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,944

希望得到你的帮助!

1 个答案:

答案 0 :(得分:1)

我会将它们视为一个字符串。以下作品。

fileID = fopen('value1.csv','r');
formatSpec = '%s; \n';
A1 = fscanf(fileID, formatSpec);
formatSpec1 = '%s%f %f %f %f %s %f %f %s\n';
A2 = textscan(fileID, formatSpec1,'Delimiter',{';'});
A2{6} = str2double(strrep(A2{6},',','.'));
A2{end} = str2double(strrep(A2{end},',','.'));

{1x1 cell}    [5.0491e+11]    [1]    [1]    [1]    [3.94]    [799]    [1515]    [3.8770]