- 积分
- 8
- 注册时间
- 2010-7-6
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2010-11-24 17:48:45
|
显示全部楼层
来自 浙江杭州
我自己写了一段很菜的代码,方法很笨,但思路很清晰,对不会正则表达式的朋友也是一种可以考虑的选择。下面是代码,大家可以帮我改进一下。
- fid_in = fopen('data.in');
- fid_out = fopen('data.out','w');
- i = 0;
- while ~feof(fid_in) % 判断文件指针是否达到文件末尾
- tline = fgetl(fid_in); % 将文件指针所在的行作为一个字符串整体读入
- if isnan(str2double(strread(tline,'%s%*[^\n]')))
- continue;% 跳过以字母开头的行
- else
- i = i + 1;% i用于统计数据行,并作为存储所读取数据的数组元素的下标
- if strncmp(tline,'0',1)
- [a(i),b(i),c(i)]=strread(tline,'%*d%d%d%d%*[^\n]');
- % 读取以0开头的数据行中的非零数据
- else
- [a(i),b(i),c(i)]=strread(tline,'%d%d%d%*[^\n]');
- % 读取不是以0开头的数据行中的非零数据
- end
- end
- fprintf(fid_out,'%d %d %d\n',a(i),b(i),c(i));
- % 将所读取的数据写入data.out文件
- end
- fclose(fid_in);
- fclose(fid_out);
复制代码 |
评分
-
1
查看全部评分
-
|