Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在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格式读取字符串,并使用功能STRREP从data{1}删除"字符:

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]

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 20:34


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.