如何获取csv文件的列数?

时间:2013-08-20 12:07:26

标签: matlab

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

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

3 个答案:

答案 0 :(得分: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...)操作,或者在每次迭代时累积逗号的数量。您可能想检查您的文件是否沿着行读取(是否总是?),检查一些样本以确保它是。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

 M=csvread('file_name.csv');

 [row,col]=size(M);