Extract values from multiple txt file

Hi,
I'd like to open multiple txt files, contained in the same directory, whose names are: "file1.txt", "file2.txt", ecc...
Each file is formatted in this way: value1 value2
so two float values separated by a space.
How is it possible to put all the values in a table with two column, with one row for each files?
Thanks a lot.

 Accepted Answer

First lets create some fake data files just for testing this code:
writematrix(1:2,'file1.txt')
writematrix(3:4,'file2.txt')
writematrix(5:6,'file9.txt')
writematrix(7:8,'file10.txt')
Now lets get a list of those filenames:
P = '.'; % absolute or relative path to where the files are saved
S = dir(fullfile(P,'file*.txt'));
S = natsortfiles(S); % download from <www.mathworks.com/matlabcentral/fileexchange/47434-natural-order-filename-sort>
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
V = readmatrix(F);
S(k).data = V;
end
M = vertcat(S.data)
M = 4×2
1 2 3 4 5 6 7 8

3 Comments

Thanks, I try with the example above and it works correctly.
There is also a way to use this in the case the separator in txt files is different from " , " ?
Do I have to modify something inside the script of natsortfiles?
Stephen23
Stephen23 on 17 Nov 2022
Edited: Stephen23 on 17 Nov 2022
"There is also a way to use this in the case the separator in txt files is different from " , " ?"
In many cases with regular text formatting READMATRIX can automagically detect the delimiter character. If it cannot (or if you simply want to make your code more robust), you can specify the DELIMITER option:
"Do I have to modify something inside the script of natsortfiles?"
I doubt it. As its documentation makes quite clear, the function NATSORTFILES sorts filenames into alphanumeric order. What would you hope to achieve by modifying it?
Ok, I resolve the problem.
Thanks a lot.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2021b

Asked:

on 16 Nov 2022

Commented:

on 17 Nov 2022

Community Treasure Hunt

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

Start Hunting!