MATLAB: Creating a list of strings with different numbers and same letters

automated stringdynamic stringxlsread

i have a folder with files named as follows: f0K.csv f1K.csv f2K.csv and so on…
i want to create a for loop that will assign the data inside each file to a matrix using xlsread somthing like this :
if true
% code
for i = 0:100
MyFiles(i,:) = xlsread('f*i*K.csv','E1:E2500');
end
end
i know that there is an option to do so but haven't found it (i probably just don't know how to search! ) also , i know it's easy to do with dir('MyFolder') but for some mysterious reason its not working (i made sure its in the path ) so i'm trying to pass that obstacle in adifferent way
would appreciate your kind help !!!

Best Answer

This is easy using sprintf:
D = 'MyFolder';
for kk = 0:100
fnm = fullfile(D,sprint('f%dK.csv',kk));
MyFiles(kk+1,:) = xlsread(fnm,'E1:E2500');
end
Or using dir and my FEX submission natsortfiles to get the correct numeric order:
D = 'MyFolder'
S = dir(fullfile(D,'f*K.csv'));
N = natsortfiles({S.name});
for kk = 1:numel(N)
fnm = fullfile(D,N{kk});
MyFiles(kk,:) = xlsread(fnm,'E1:E2500');
end
Don't forget to preallocate the output array before the loop: