Extracting values from file names to array

3 views (last 30 days)
Let's say I have a directory "mydirectory" and in it, I have some files
file_234.txt
file_356.txt
file_567.txt
file_987.txt
and I want to form an array in Matlab out of the respective numbers.
234
356
567
987
How can I go into the directory, extract the information from the files, and put each value into the array?
Thanks!

Accepted Answer

Stephen23
Stephen23 on 22 Oct 2019
Edited: Stephen23 on 22 Oct 2019
>> D = 'path to the folder where the files are saved';
>> S = dir(fullfile(D,'file_*.txt'));
Method one: regexp:
>> V = str2double(regexp({S.name},'\d+','match','once'))
V =
234 356 567 987
Method two: sscanf:
>> V = sscanf([S.name],'file_%d.txt') % change to suit your filenames
V =
234
356
567
987

More Answers (1)

Sean de Wolski
Sean de Wolski on 22 Oct 2019
fn = ["file_234.txt"
"file_356.txt"
"file_567.txt"
"file_987.txt"]
double(extractBetween(fn, "_", "."))

Categories

Find more on File Operations in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!