Hi- I want to merge multiple files into one file by selecting one of those files specifically to be the header
I've tried the following code, which I found in the Matlab community. But the first line is not the header I want.
the name of the header file is: header.405
any help will be appreciated
projectdir = uigetdir('pub/eph/planets/ascii/de405');
dinfo = dir( fullfile(projectdir, '*.405') );
filenames = fullfile( projectdir, {dinfo.name} );
output='merged.txt';
fidout=fopen(output,'w');
for cnt=1:length(dinfo)
fprintf(fidout,'%s\n',dinfo(cnt).name);
fidin=fopen(dinfo(cnt).name);
fwrite(fidout,fread(fidin));
fprintf(fidout,'\n');
fclose(fidin);
end
fclose(fidout);

 Réponse acceptée

Antoni Garcia-Herreros
Antoni Garcia-Herreros le 17 Mar 2023

0 votes

Hello Lilya,
I'm guessing the problem is your header.405 is not the first file listed in dinfo. What you could do i find the position of your header file and set it to be the first.
Index = find(contains(filenames,'header')); % Find the position of the header file
F=[filenames(Index),filenames];
F(Index+1)=[];
output='merged.txt';
fidout=fopen(output,'w');
for cnt=1:length(F)
fprintf(fidout,'%s\n',F(cnt));
fidin=fopen(F(cnt));
fwrite(fidout,fread(fidin));
fprintf(fidout,'\n');
fclose(fidin);
end
fclose(fidout);
Hope this works!

1 commentaire

Lilya
Lilya le 17 Mar 2023
thanks Sir Antoni
this error appeard
Error using fprintf
Function is not defined for 'cell' inputs.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by