Selecting middle of file name

Hi, I have many files with varying names. I have a string from 8:12 that is the same for all. However it is not the beginning of the file name. How would i write a statement to address all of them with the same numbers at spot 8:12?
I want to follow it up with an if statment so that MATLab can hunt my file names for the specific numbers in 8:12.
Thank you!

Answers (2)

If your file names are stored as a cell array of character vectors:
fn = {'abcdefg89012mnopq' 'abcdefg89013mnopq' 'abcdefg89014mnopq' 'abcdefg89012mnopz'};
temp = cellfun(@(x)x(8:12),fn,'UniformOutput',false)
temp = 1×4 cell array
{'89012'} {'89013'} {'89014'} {'89012'}
Alternatively, if they are stored as a string array:
fn = ["abcdefg89012mnopq" "abcdefg89013mnopq" "abcdefg89014mnopq" "abcdefg89012mnopz"];
temp = extractBetween(fn,8,12)
temp = 1×4 string array
"89012" "89013" "89014" "89012"
Then, regardless of whether cell array or string array:
idx = strcmp(temp,'89012') % logical index of which names match '89012' in positions 8:12
idx = 1×4 logical array
1 0 0 1
fn(idx) % the matching file names
ans = 1×2 string array
"abcdefg89012mnopq" "abcdefg89012mnopz"

2 Comments

Thank you!
You're welcome! If you have any questions, let me know. Otherwise, please "Accept this Answer". Thanks!

Sign in to comment.

Try this:
filePattern = fullfile(pwd, '*.txt'); % Whatever it is.
fileList = dir(filePattern);
for k = 1 : numel(fileList)
% Get the file name.
thisName = fileList(k).name;
% Get the characters in indexes 8 to 12 into a substring.
str = thisName(8:12);
% Search that substring for particular number, or as poster says:
% "hunt my file names for the specific numbers"
% For example see if there is a 9 in the substring.
if contains(str, '9')
% String contains the number we're looking for
end
end
If this is not what you wanted to do then give me a list of some typical filenames, "the specific numbers in 8:12" that you're seeking, and what you expect as the output.

Categories

Asked:

on 9 Nov 2022

Commented:

on 10 Nov 2022

Community Treasure Hunt

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

Start Hunting!