首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab:带空格的Textscan

Matlab:带空格的Textscan
EN

Stack Overflow用户
提问于 2013-08-15 17:11:39
回答 3查看 1.9K关注 0票数 1

我有一个如下格式的文本文件:

代码语言:javascript
复制
3,4, ,CMX COP,JUL11,ABCD4,APPM,CME,4PTS09,F,HG,27, , ,1,4.3,2,27,23,1,NCAP1,0
5,6, ,AUD,JUN11,ABCD4,APPM,CME,4PTS09,F,6A,11, , ,1,1.7,10,27,23,1,NCAP1,0

我试着用文本扫描来读它,但我不知道如何处理空白。我试过:

代码语言:javascript
复制
filename = 'E:\20110427.csv';

fileid = fopen(filename,'rt');
Data = textscan(fileid, '%d,%d,%c,%s,%s,%s,%s,%s,%s,%s,%s,%d,%c,%c,%d,%f,%d,%d,%d,%d,%s,%d')

CMX和COP之间的空间似乎正在抛出,还有可能是逗号之间的空白。有什么建议吗?

CMX警察是一回事。删除这个空间是可以的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-15 18:13:17

您需要使用文本扫描的'Delimiter'选项(我还将空格上的%c更改为%s,以避免读取分隔符)。

代码语言:javascript
复制
str = '5,6, ,AUD,JUN11,ABCD4,APPM,CME,4PTS09,F,6A,11, , ,1,1.7,10,27,23,1,NCAP1,0';
Data = textscan(str, '%d%d%s%s%s%s%s%s%s%s%s%d%s%s%d%f%d%d%d%d%s%d', 'Delimiter', ',');
票数 1
EN

Stack Overflow用户

发布于 2013-08-15 18:17:54

也可以使用函数regexp

代码语言:javascript
复制
A = '3,4, ,CMX COP,JUL11,ABCD4,APPM,CME,4PTS09,F,HG,27, , ,1,4.3,2,27,23,1,NCAP1,0';
regexp(A,'\w','match')
票数 1
EN

Stack Overflow用户

发布于 2017-06-27 16:48:38

如果每次留置权总是缺少相同的值,您只需告诉matlab使用多个分隔符作为一个:

代码语言:javascript
复制
C = textscan(fileID,'%f %f %f %f','Delimiter',',','MultipleDelimsAsOne',1);

其中1代表真实。

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

https://stackoverflow.com/questions/18257903

复制
相关文章

相似问题

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