加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

消除txt数据文件中空行批处理matlab小程序

(2011-04-19 13:29:05)
标签:

杂谈

分类: 编程语言学习

消除txt数据文件中空行批处理matlab小程序

%下面这段才是真正的读入数据写出数据的程序
%需要txt原型数据文件,然后可以将所有的字符行消除,空行消除

考虑到写入数据文件其实并没有什么意义,同时修改数据行中可以包含小数点(.)、-、E(科学计数法)等符号。
function [data]=distilldata(infile)
%功能说明:
%将保存数据的原始文件中的数值数据读入到一个data变量中
%使用说明:
% infile——原始数据文件名;
% data=数据变量

tmpfile='tmp.mat';
fidin=fopen('aaa.txt','r'); % 打开原始数据文件(aaa.txt)
fidtmp=fopen(tmpfile,'w'); % 创建保存数据文件(不含说明文字)
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读入一行文本(不含回车键)
if isempty(tline) | tline==' ' % 判断是否空行
continue
else
[m,n]=size(tline);
flag=1;
for i=1:n %判断一行中有没有字符(+-.Ee和空格键除外)
if tline(i)==' '|tline(i)=='-'|tline(i)=='.'|tline(i)=='E'...
|tline(i)=='e'|tline(i)=='+'...
|(double(tline(i))>=48&&double(tline(i))<=57)
continue
else
flag=0;
break
end
end
if flag==1 % 如果是数字行,把此行数据写入文件
fprintf(fidtmp,'%s\n',tline);
else
continue
end
end
end
fclose(fidin);
fclose(fidtmp);
data=textread(tmpfile);

 


稍作修改后的文件:

tmpfile='tmp.mat';
fidin=fopen('aaa.txt','r'); % 打开原始数据文件(aaa.txt)
fidout=fopen('bbb.txt','w'); % 创建保存数据文件(不含说明文字)
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读入一行文本(不含回车键)
if isempty(tline) | tline==' ' % 判断是否空行
continue
else
[m,n]=size(tline);
flag=1;
for i=1:n %判断一行中有没有字符(+-.Ee和空格键除外)
if tline(i)==' '|tline(i)=='-'|tline(i)=='.'|tline(i)=='E'...
|tline(i)=='e'|tline(i)=='+'...
|(double(tline(i))>=48&&double(tline(i))<=57)
continue
else
flag=0;
break
end
end
if flag==1 % 如果是数字行,把此行数据写入文件
fprintf(fidout,'%s\n',tline);
else
continue
end
end
end
fclose(fidin);
fclose(fidout);
data=textread(tmpfile);

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有