自己的记性一直不好,所以写下来提醒自己啊
将原始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