matlabでtextscan()を使用するときに「文字を無視してください
質問
TextScanを使用してファイルからデータを読み取っています。読まれているデータは次のとおりです。
"ABC",0.156
"DEF",0.125
"GHI",0.101
私のコードは - data = textscan(fid, '%s %f', 'Delimiter', ',');
データ{1}は次のように来ます
'"ABC"'
'"DEF"'
'"GHI"'
データ{1}が欲しい -
'ABC'
'DEF'
'GHI'
最後に、どうすれば答えを得ることができますか
data =
'ABC' [0.156];
'DEF' [0.125];
'GHI' [0.101];
データ{1}とデータ{2}を使用する代わりに。ありがとう!
解決
実際には無視する2つの方法があります "
文字列を読むときのキャラクター。に従って TextScan ドキュメント、使用できます %q
の代わりに形式 %s
フォーマット:
data = textscan(fid,'%q %f','Delimiter',',');
または、を使用して文字列を読むことができます %s
フォーマットして削除します "
からの文字 data{1}
関数を使用します strrep:
data{1} = strrep(data{1},'"','');
その後、関数を使用できます num2cell 数値の配列をで変換します data{2}
あなたができるようにセルアレイに 連結 文字列のセルアレイがあります data{1}
:
>> data = [data{1} num2cell(data{2})];
data =
'ABC' [0.1560]
'DEF' [0.1250]
'GHI' [0.1010]
他のヒント
二重引用符の使用を取り除くために
data = textscan(fid, '%q %f', 'Delimiter', ',');
どこ %q
魔法はありますか。
所属していません StackOverflow