首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中使用textscan()时忽略“字符

在MATLAB中使用textscan()时忽略“字符
EN

Stack Overflow用户
提问于 2011-03-15 02:11:58
回答 2查看 7.1K关注 0票数 6

我正在使用textscan从文件中读取数据。正在读取的数据为:

代码语言:javascript
复制
"ABC",0.156
"DEF",0.125
"GHI",0.101

我的代码是- data = textscan(fid, '%s %f', 'Delimiter', ',');

数据{1}为

代码语言:javascript
复制
'"ABC"'
'"DEF"'
'"GHI"'

我希望数据{1}为-

代码语言:javascript
复制
'ABC'
'DEF'
'GHI'

最后,我如何才能得到如下答案?

代码语言:javascript
复制
data = 
'ABC' [0.156];
'DEF' [0.125];
'GHI' [0.101];

而不使用数据{1}和数据{2}。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-15 03:51:02

在读取字符串时,实际上有两种方法可以忽略"字符。根据TEXTSCAN文档,您可以使用%q格式代替%s格式:

代码语言:javascript
复制
data = textscan(fid,'%q %f','Delimiter',',');

或者,您可以使用%s格式读取字符串,然后使用函数STRREPdata{1}中删除"字符

代码语言:javascript
复制
data{1} = strrep(data{1},'"','');

然后,可以使用函数NUM2CELLdata{2}中的数值数组转换为单元格数组,以便可以使用data{1}中的字符串单元格数组对其进行concatenate

代码语言:javascript
复制
>> data = [data{1} num2cell(data{2})];

data =

    'ABC'    [0.1560]
    'DEF'    [0.1250]
    'GHI'    [0.1010]
票数 4
EN

Stack Overflow用户

发布于 2011-03-15 04:00:15

为了摆脱双引号的使用

代码语言:javascript
复制
data = textscan(fid, '%q %f', 'Delimiter', ',');

就是%q施展魔法的地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5302578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档