Extracting values from file names to array

4 Ansichten (letzte 30 Tage)
g
g am 22 Okt. 2019
Bearbeitet: Stephen23 am 22 Okt. 2019
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!

Akzeptierte Antwort

Stephen23
Stephen23 am 22 Okt. 2019
Bearbeitet: Stephen23 am 22 Okt. 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

Weitere Antworten (1)

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

Kategorien

Mehr zu File Operations finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by