Matlab 原始txt分裂为新的txt文件

自己的记性一直不好,所以写下来提醒自己啊

将原始txt分裂为2个txt,前三列代表XYZ,后三列代表RGB数据。

</pre><pre name="code" class="html">%初始化变量
path = 'G:\dataCapture\test\';
file =dir(path);
for i = 1:length(file)
    path1 = strcat(path,'000',num2str(i),'\*.txt');
    num = dir(path1);
    for j = 1:length(num)
        
        filename =strcat(path,'000',num2str(i),'\', num(i).name);
        %temp_string1 = num(i).name(6:end-4);
        %newname = strcat(temp_string1,'_',num2str(i),'.mat');
        %将txt读入到mat矩阵中(14版直接拿来用)
        delimiter = '\t';
        formatSpec = '%f%f%f%f%f%f%[^\n\r]';
        fileID = fopen(filename,'r');
        dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue' ,NaN, 'ReturnOnError', false);
        fclose(fileID);
        eval (['data' '= [dataArray{1:end-1}]']);
        clearvars filename delimiter formatSpec fileID dataArray ans;
        %保存前三列几何信息到新的txt
        %保存后三列纹理信息到新txt
        new_txt1 = strcat('F:\Data\3D data\3DL_Geometry\',num2str(i),'_',num2str(j),'.txt');
        new_txt2 = strcat('F:\Data\3D data\3DL_Textrue\',num2str(i),'_',num2str(j),'.txt');
        fid1 = fopen(new_txt1,'wt');
        fid2 = fopen(new_txt2,'wt');
       % fprintf(fid1,'%d ',temp_string1(:,1:3));
       % fprintf(fid2,'%d ',temp_string1(:,4:6));
       mm=size(data,1);
        for k=1:mm
        fprintf(fid1,'%8.4f ',data(k,1));
        fprintf(fid1,'%8.4f ',data(k,2));
        fprintf(fid1,'%8.4f \n',data(k,3));
        fprintf(fid2,'%8.4f ',data(k,4));
        fprintf(fid2,'%8.4f ',data(k,5));
        fprintf(fid2,'%8.4f \n',data(k,6));        
        end  
        fclose(fid1);
        fclose(fid2);
        %保存生成的mat
        %eval (['save ',newname,'']);
    
    end
end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值