How to merge .txt files from a loop using writematrix

2 vues (au cours des 30 derniers jours)
Ivan Mich
Ivan Mich le 1 Juin 2020
Réponse apportée : Ronit le 19 Sep 2024
Hello,
I have a problem with a code. I am making via aloop multiple .txt files. I would like to merge them to a final.txt file, via a for loop but I do not know how.
I am importing my code
for n=1:numel(st);
for i=1:size(nam);
FP=fopen(sprintf('m%g0.txt',i),'wt');
fprintf(FP,'%s\t',num2str(Results));
fclose(FP);
D = 'absolute/relative path to where the files are saved';
N = 25; % number of files
C = cell(1,N);
for k = 1:N
F = fullfile(D,sprintf('m%u.txt',k));
C{k} = dlmread(F);
end
M = vertcat(C{:});
FF = sprintf('final%u.txt',n);
dlmwrite(FF,M,'\t')
end
end
I have tried dlmwrite but it does not work.
command window shows me error:
Error using dlmread (line 62) The file 'C:\Users\HP\Desktop\P\m2.txt' could not be opened because: No such file or directory
Error in F (line 105) C{k} = dlmread(F);
Could you help me?

Réponses (1)

Ronit
Ronit le 19 Sep 2024
Hello Ivan,
The error message suggests that the file m2.txt does not exist at the specified path. This could be due to a mismatch in the file naming or path issues. Please look at the following approach:
D = 'absolute/relative path to where the files are saved';
N = 25;
for n = 1:numel(st)
for i = 1:size(nam)
filename = fullfile(D, sprintf('m%u.txt', i)); % Correct file naming
FP = fopen(filename, 'wt');
fprintf(FP, '%s\t', num2str(Results));
fclose(FP);
end
C = cell(1, N);
for k = 1:N
F = fullfile(D, sprintf('m%u.txt', k)); % Correct file naming
if exist(F, 'file')
C{k} = readmatrix(F, 'Delimiter', '\t');
else
warning('File %s does not exist.', F);
end
end
M = vertcat(C{:});
FF = fullfile(D, sprintf('final%u.txt', n));
writematrix(M, FF, 'Delimiter', '\t');
end
Please try to use "readmatrix" instead of "dlmread" as it is not recommended anymore. Following are the MATLAB’s documentation links for further information:
  1. "readmatrix" - https://www.mathworks.com/help/matlab/ref/readmatrix.html
  2. "dlmread" - https://www.mathworks.com/help/matlab/ref/dlmread.html
  3. "writematrix" - https://www.mathworks.com/help/matlab/ref/writematrix.html
I hope it resolves your query!

Community Treasure Hunt

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

Start Hunting!

Translated by