6

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];

data{1} と data{2} を使用する代わりに。ありがとう!

4

2 に答える 2

4

"文字列を読み取るときに文字を無視するには、実際には 2 つの方法があります。TEXTSCANのドキュメントに従って、%q形式の代わりに形式を使用でき%sます。

data = textscan(fid,'%q %f','Delimiter',',');

または、%sフォーマットを使用して文字列を読み取り、関数STRREP"を使用して文字を削除できます。data{1}

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]
于 2011-03-14T19:51:02.357 に答える
1

二重引用符を取り除くには、

data = textscan(fid, '%q %f', 'Delimiter', ',');

%q魔法はどこで。

于 2011-03-14T20:00:15.383 に答える