Mad*_*ddy 6 file-io matlab literals textscan
我正在使用textscan从文件中读取数据.正在读取的数据是:
"ABC",0.156
"DEF",0.125
"GHI",0.101
Run Code Online (Sandbox Code Playgroud)
我的代码是 - data = textscan(fid, '%s %f', 'Delimiter', ',');
数据{1}来了
'"ABC"'
'"DEF"'
'"GHI"'
Run Code Online (Sandbox Code Playgroud)
我希望数据{1}为 -
'ABC'
'DEF'
'GHI'
Run Code Online (Sandbox Code Playgroud)
最后,我怎么能得到答案
data =
'ABC' [0.156];
'DEF' [0.125];
'GHI' [0.101];
Run Code Online (Sandbox Code Playgroud)
而不是使用数据{1}和数据{2}.谢谢!
实际上有两种方法可以"在读取字符串时忽略这些字符。根据TEXTSCAN文档,您可以使用以下%q格式而不是以下%s格式:
data = textscan(fid,'%q %f','Delimiter',',');
Run Code Online (Sandbox Code Playgroud)
或者您可以使用格式读取字符串%s并使用函数STRREP"删除字符:data{1}
data{1} = strrep(data{1},'"','');
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用函数NUM2CELL将数值数组转换为data{2}元胞数组,以便可以将其与 中的字符串元胞数组连接data{1}:
>> data = [data{1} num2cell(data{2})];
data =
'ABC' [0.1560]
'DEF' [0.1250]
'GHI' [0.1010]
Run Code Online (Sandbox Code Playgroud)