我正在使用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}。谢谢!
发布于 2011-03-15 03:51:02
在读取字符串时,实际上有两种方法可以忽略"字符。根据TEXTSCAN文档,您可以使用%q格式代替%s格式:
data = textscan(fid,'%q %f','Delimiter',',');或者,您可以使用%s格式读取字符串,然后使用函数STRREP从data{1}中删除"字符
data{1} = strrep(data{1},'"','');然后,可以使用函数NUM2CELL将data{2}中的数值数组转换为单元格数组,以便可以使用data{1}中的字符串单元格数组对其进行concatenate
>> data = [data{1} num2cell(data{2})];
data =
'ABC' [0.1560]
'DEF' [0.1250]
'GHI' [0.1010]发布于 2011-03-15 04:00:15
为了摆脱双引号的使用
data = textscan(fid, '%q %f', 'Delimiter', ',');就是%q施展魔法的地方。
https://stackoverflow.com/questions/5302578
复制相似问题