質問

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 魔法はありますか。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top