我正在阅读许多 csv 文件并提取第 1、6、8 和 20 列。分隔符是 '","' 因为 csv 使用双引号。除非标记了某些数据,否则这非常有效,在这种情况下,一切都会变得异常。数据示例:
Date Year Month Day Flag Min T Flag Max T
30/11/2007 2007 11 30 [Blank] -14.9 [Blank] -20.3
01/12/2007 2007 12 1 * -16 [Blank] -20.1
脚本读取完美到 * 然后一切都被转移,所以我得到的只是 NaN。
fid1 = fopen(File, 'r');
Date = textscan(fid1, '%q %*s %*[^\n]', 'Delimiter', ',', 'HeaderLines', 25);
fclose(fid1);
Date = datenum(Date{1, 1}, 'yyyy-mm-dd');
fid1 = fopen(File, 'r');
Data = textscan(fid1, '%*s %*s %*s %*s %f %f %*s %*s %*s %*s %*s %f %*[^\n]',
'Delimiter', '","', 'HeaderLines', 25,'treatAsEmpty', {'M', '*', 'E', 'T', 'A', 'C',
'L', 'N', 'Y', 'S', 'F'}, 'multipledelimsasone', true);
fclose(fid1);
所以我想我的问题是:
我可以使用循环预格式化每个文件以删除标志或更改文本扫描以忽略所有标志,以便我的分隔符起作用。
感谢您的输入!