您的位置:首页 > 编程语言 > MATLAB

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

2016-01-04 19:58 656 查看
自己的记性一直不好,所以写下来提醒自己啊

将原始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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: