在MATLAB中使用textScan()时忽略“字符
题
我正在使用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}。谢谢!
解决方案
实际上有两种方法可以忽略 "
读取字符串时的字符。按照 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
做魔术。
不隶属于 StackOverflow