1

次のようにフォーマットされたテキストファイルがあります。

3,4, ,CMX COP,JUL11,ABCD4,APPM,CME,4PTS09,F,HG,27, , ,1,4.3,2,27,23,1,NCAP1,0
5,6, ,AUD,JUN11,ABCD4,APPM,CME,4PTS09,F,6A,11, , ,1,1.7,10,27,23,1,NCAP1,0

textscanで読み込もうとしているのですが、空白の扱いがわかりません。私は試した:

filename = 'E:\20110427.csv';

fileid = fopen(filename,'rt');
Data = textscan(fileid, '%d,%d,%c,%s,%s,%s,%s,%s,%s,%s,%s,%d,%c,%c,%d,%f,%d,%d,%d,%d,%s,%d')

CMX と COP の間のスペース、およびカンマ間の空白が原因である可能性があります。助言がありますか?

CMX COP は 1 つのことです。スペースを削除しても問題ありません。

4

3 に答える 3

1

textscanのオプションを使用する必要があり'Delimiter'ます (区切り文字を読み取らないように、スペースの %c を %s に変更しました)。

str = '5,6, ,AUD,JUN11,ABCD4,APPM,CME,4PTS09,F,6A,11, , ,1,1.7,10,27,23,1,NCAP1,0';
Data = textscan(str, '%d%d%s%s%s%s%s%s%s%s%s%d%s%s%d%f%d%d%d%d%s%d', 'Delimiter', ',');
于 2013-08-15T18:13:17.420 に答える
1

または、次の関数を使用できますregexp

A = '3,4, ,CMX COP,JUL11,ABCD4,APPM,CME,4PTS09,F,HG,27, , ,1,4.3,2,27,23,1,NCAP1,0';
regexp(A,'\w','match')
于 2013-08-15T18:17:54.587 に答える