creating a list of strings with different numbers and same letters

6 ビュー (過去 30 日間)
void22
void22 2018 年 6 月 20 日
編集済み: Stephen23 2021 年 4 月 18 日
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 !!!

採用された回答

Stephen23
Stephen23 2018 年 6 月 20 日
編集済み: Stephen23 2021 年 4 月 18 日
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'));
S = natsortfiles(S); % alphanumeric sort by filename
for k = 1:numel(S)
F = fullfile(D,S(kk).name;
MyFiles(k,:) = xlsread(F,'E1:E2500');
end
Don't forget to preallocate the output array before the loop:

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeIntroduction to Installation and Licensing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by