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

而不是使用数据{1}和数据{2}。谢谢!

4

2 回答 2

4

"在读取字符串时,实际上有两种方法可以忽略字符。根据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 回答