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

首先贴一些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 all
clear
clc

fileID = 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();如果忘记会出现打开文件太多,导致读写不完全的情况。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值