多くの 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);
だから私は私の質問は次のとおりだと思います:
区切り文字が機能するように、各ファイルをループで事前にフォーマットしてフラグを削除するか、textscan を変更してフラグをすべて無視することはできますか?
ご意見ありがとうございます。