我有一个如下格式的文本文件:
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我试着用文本扫描来读它,但我不知道如何处理空白。我试过:
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警察是一回事。删除这个空间是可以的。
发布于 2013-08-15 18:13:17
您需要使用文本扫描的'Delimiter'选项(我还将空格上的%c更改为%s,以避免读取分隔符)。
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', ',');发布于 2013-08-15 18:17:54
也可以使用函数regexp:
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')发布于 2017-06-27 16:48:38
如果每次留置权总是缺少相同的值,您只需告诉matlab使用多个分隔符作为一个:
C = textscan(fileID,'%f %f %f %f','Delimiter',',','MultipleDelimsAsOne',1);其中1代表真实。
https://stackoverflow.com/questions/18257903
复制相似问题