在MATLAB
使用textscan()时,我使用textscan来从文件中读取数据忽略“字被读出的数据是:在MATLAB
"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
格式读取的字符串和使用功能STRREP从data{1}
删除"
字符:
data{1} = strrep(data{1},'"','');
然后,您可以使用函数NUM2CELL将data{2}
中的数值数组转换为单元格数组,以便您可以将它concatenate它用绳子在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
确实神奇。
以上是 在MATLAB 的全部内容, 来源链接: utcz.com/qa/260522.html