我有一个巨大的csv文件,我想用matlab加载。但是,我只对我知道名字的特定列感兴趣。
作为第一步,我想查看csv文件有多少列。我怎么能用matlab做到这一点?
答案 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);