MATLAB读取txt文件,批量生成txt文件

来源:互联网 发布:网络剧《有毒》在线播 编辑:程序博客网 时间:2024/04/27 21:33

首先贴一些txt文件数据:
1473142633083.jpg 52 770 226 1070 452
1473142633083.jpg 42 459 224 650 382
1473142633083.jpg 21 315 84 510 262
1473142634162.jpg 23 737 267 996 556
1473142634162.jpg 53 951 359 1238 602
1473142676730.jpg 29 563 391 1218 613
1473142676730.jpg 48 500 128 726 243
1473142676730.jpg 33 315 102 478 199
1473142677803.jpg 23 751 269 992 541
……
对于以上形式的大批量数据,我们需要分别生成1473142633083.txt,1473142634162.txt,1473142676730.txt,1473142677803.txt
以上这些txt文件,同时1473142633083.txt文件里面的内容如下:
52
770 226 1070 452
42
459 224 650 382
21
315 84 510 262
其他txt文件同上。以下是代码:

close allclearclcfileID = fopen('C:\Users\kenh.CN\Desktop\food1\food\food template\dataset-for-fast-rcnn\1.txt');[c1, c2, c3, c4, c5,c6] = textread('C:\Users\kenh.CN\Desktop\food1\food\food template\dataset-for-fast-rcnn\1.txt','%s%d%d%d%d%d');[a,b]=size(c1);i = 1;for m = 2:a      if  strcmp(c1(m,1),c1(m-1,1))    %strcmp(c1(m,1),c1(m-1,1))为1则相等                 i = i+1;        if m==a        str = char(c1(a,1));        str1 = [str(1:end-4),'.txt'];               fd=fopen(str1,'a+');        for k=m-i+1:m        fprintf(fd,'%d\r\n',c2(k,1));        fprintf(fd,'%d %d %d %d\r\n',c3(k,1),c4(k,1),c5(k,1),c6(k,1));        end        fclose(fd);        end        continue;    else        str = char(c1(m-1,1));        str1 = [str(1:end-4),'.txt'];               fd=fopen(str1,'a+');        for k=m-i:m-1            fprintf(fd,'%d\r\n',c2(k,1));            fprintf(fd,'%d %d %d %d\r\n',c3(k,1),c4(k,1),c5(k,1),c6(k,1));        end         fclose(fd);        if m==a           str = char(c1(a,1));           str1 = [str(1:end-4),'.txt'];                  fd=fopen(str1,'a+');           fprintf(fd,'%d\r\n',c2(a,1));           fprintf(fd,'%d %d %d %d\r\n',c3(a,1),c4(a,1),c5(a,1),c6(a,1));           fclose(fd);        end    end    i=1;end

注意:在批量打开txt文件,一定记得fclose();如果忘记会出现打开文件太多,导致读写不完全的情况。

0 0
原创粉丝点击