1

我有一个巨大的 csv 文件,我想用 matlab 加载。但是,我只对我知道名称的特定列感兴趣。

作为第一步,我想检查 csv 文件有多少列。我怎么能用matlab做到这一点?

4

3 回答 3

2

正如 Jonesy 和 erelender 建议的那样,我认为这会做到:

    fid=fopen(filename);
    tline = fgetl(fid);
    fclose(fid);
    length(find(tline==','))+1

由于您似乎不知道正在使用哪种回车符(或字符编码?),所以我建议逐步对文件进行采样,直到遇到可识别的 CR 字符。一种方法是遍历类似的东西

    A = fscanf(fileID, ['%' num2str(N) 'c'], sizeA);

其中N是要读取的字符数。在每次迭代测试A是否存在回车符时,如果遇到则停止。一旦您知道回车的位置,只需使用正确的 N 重复并执行length(find...)操作,或者在每次迭代时交替累积逗号的数量。您可能想要检查您的文件是否被沿行读取(总是这样?),检查一些样本以确保它是。

于 2013-08-20T12:13:29.047 回答
0

1-) 读取文件的第一行
2-) 计算逗号的数量,如果不是逗号,则计算分隔符
3-) 将计数加 1,结果为文件中的列数。

于 2013-08-20T12:12:54.323 回答
0

如果 csv 只有数值,您可以使用:

 M=csvread('file_name.csv');

 [row,col]=size(M);
于 2013-08-20T12:49:57.450 回答