我正在使用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}。谢谢!
答案 0 :(得分:4)
在阅读字符串时,实际上有两种方法可以忽略"
个字符。根据{{3}}文档,您可以使用%q
格式代替%s
格式:
data = textscan(fid,'%q %f','Delimiter',',');
或者您可以使用%s
格式阅读字符串,并使用TEXTSCAN函数从"
删除data{1}
个字符:
data{1} = strrep(data{1},'"','');
然后,您可以使用函数STRREP将data{2}
中的数值数组转换为单元格数组,以便NUM2CELL使用{{1}中的字符串单元格数组concatenate 1}}:
data{1}
答案 1 :(得分:1)
为了摆脱双引号,请使用
data = textscan(fid, '%q %f', 'Delimiter', ',');
%q
的神奇之处在哪里。