how to merge text files

for k = 1:100
fname = ['Image' num2str(k) '.txt'];
fid = fopen(fname,'wt');
for j=1:length(R)
fprintf(fid,'%f %f %f\n',R(j),C(j) ,Z(j));
end
fclose(fid);
end
I got 100 text files from this code, In it R,C,Z will be saved as columns.. Now, i want to merge all this text files in single text file as R,C,Z columns.. so, how to do..?

 Accepted Answer

OS-X and Linux version:
!cat Image???.txt > all_Image.txt
No point in writing code when the operating system already has the facilities.

3 Comments

Image1.txt will be the name of text file created from Image1.jpg ans so, Image2.txt, Image3.txt,...
I have done same thing for excel files,and it works but it takes too long time..
m = 0;
for j = 1:100
global filename
filename = ['Image' num2str(j),'.xls'];
w = xlsread(filename,1,'A1:A1000');
u = xlsread(filename,1,'B1:B1000');
t = xlsread(filename,1,'C1:C1000');
q = length(w);
p = m+1;
R(1, p:(m+q)) = w;
R(2, p:(m+q)) = u;
R(3, p:(m+q)) = t;
xlswrite('lalits.xls',R');
y = xlsread('lalits',1,'A1:A65565');
m = length(y);
end
I misread your code and thought you were using 001 and so on. The correction would be
!cat Image*.txt > all_Image.txt
How you calculated the values in the vectors (e.g., by processing .JPG files) is not important to the task of merging the text files.
Each time you start up xlsread() or xlswrite() a new ActiveX connection is made to Excel (if you are using MS Windows.) That is slow. Your code for doing the appending is also pretty inefficient, writing to the xls file and reading it back immediately.
outfid = fopen('all_Image.txt', 'wt');
for j = 1 : 100
filename = ['Image' num2str(j),'.txt'];
fwrite(outfid, fileread(filename));
end
fclose(outfid)

Sign in to comment.

More Answers (1)

Lalit Patil
Lalit Patil on 8 Nov 2012

0 votes

Thanks for help... I got solution..

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!