我有一些 cvs 文件,我想从中读取特定的行,以便从中收集特定的信息。虽然我发现如果手动删除一行,我可以很好地阅读这些文件,但我希望能够使用一些代码跳过这一行,以避免遍历这些文件中的每一个并手动删除这一行。
示例:我的文件如下所示
- 废话
- 废话
- 废话
- S>
- 废话
- 废话
- nquan = 12
- 废话
我正在使用 matlab 中的以下代码读取此文件:
din = 'C:/example/';
CNVfiles = dir ([din '*.cnv']);
fid = fopen([din CNVfiles], 'r');
我希望能够从“# nquan = 12”行中获得数字“12”(这是我稍后需要的列数(Ncol)),
p = ' ';
while ~isequal(p(1:7),'* nquan')
p = fgets(fid);
end
Ncol = str2double(p(11:end));
fclose(fid);
但是,它给我一个错误,指出“结束”处的“索引超出矩阵维度”......当我查看“p”是什么时,它告诉我“* S>”,因此我猜我有一个问题读取文件中的“* S>”行时..
当我手动删除该行'* S>'时,一切正常,我得到我的 Ncol = 12。但是,我想避免手动执行此操作,因为我有一堆这样的 cnv 文件。
我想跳过那条线,但不知道该怎么做……有什么想法吗?我该怎么做才能让它发挥作用?
非常感谢,
苏菲