3
我正在閱讀許多csv文件並提取列1,6,8和20.分隔符是'「,」',因爲csv使用雙引號。除非某些數據被標記,否則這很有效,在這種情況下,所有內容都會被丟掉。數據示例:textscan列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
腳本讀取完美的*,然後一切都轉移,所以我得到的是NaNs。
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);
,所以我想我的問題是:
我可以PREFORMAT每個文件有一個循環,除去標誌或改變textscan的標誌忽略讓我的分隔符的作品都在一起。
感謝您的輸入!
有幾種不同的標誌,*是示例文件這部分中的標誌。 M,T,S,C等也作爲標誌出現。 –
你只是想抓住日期? – RussH
@RussH你無法確定是否安裝了'sed'。另外,如果有更簡單的本地解決方案(例如使用'regexp'的解決方案),最好不要避免使用'system'命令。 –