Matlab 如何获取csv文件的列数?

Matlab 如何获取csv文件的列数?,matlab,Matlab,我有一个巨大的csv文件,我想用matlab加载。但是,我只对我知道名称的特定列感兴趣 作为第一步,我只想检查csv文件有多少列。如何使用matlab实现这一点?1-)阅读文件的第一行 2-)计算逗号的数量,如果不是逗号,则计算分隔符字符的数量 3-)在计数中加1,结果就是文件中的列数。正如Jonesy和Erlender所建议的,我认为这样做可以: fid=fopen(filename); tline = fgetl(fid); fclose(fid); leng

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

作为第一步,我只想检查csv文件有多少列。如何使用matlab实现这一点?

1-)阅读文件的第一行
2-)计算逗号的数量,如果不是逗号,则计算分隔符字符的数量

3-)在计数中加1,结果就是文件中的列数。

正如Jonesy和Erlender所建议的,我认为这样做可以:

    fid=fopen(filename);
    tline = fgetl(fid);
    fclose(fid);
    length(find(tline==','))+1
由于您似乎不知道正在使用哪种类型的回车字符(或字符编码?),因此我建议逐步对文件进行采样,直到遇到可识别的CR字符。这样做的一种方法是循环

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

其中
N
是要读取的字符数。在每次迭代测试
A
是否存在回车符时,如果遇到回车符,则停止。一旦知道回车符的位置,只需使用右N重复并执行
长度(查找…
操作,或者在每次迭代时交替累积逗号数。您可能希望检查文件是否在行中读取(是否总是?),请检查一些示例以确保它是正确的。

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

 M=csvread('file_name.csv');

 [row,col]=size(M);

计算逗号的数量直到换行,然后添加一个?问题是在我的情况下没有换行,因此fgetl不起作用:(CSV的列有一个delimeter,行有一个换行符。您是如何设置的?如果没有换行符,记录之间的分隔符是什么?如果CSV文件中的行有一个可变的字段数怎么办?这里有很多相关的问题,以便阅读各种CSV文件。。。