If I have some file folders, like '19800101', '1980012',... '19801201',... In each file, it have a .mat file. I want to deal with folder according to if their belong to same month. like, .mat file in folder '19800101' and '19800102' should be done with same action.

2 commentaires

per isakson
per isakson le 3 Mar 2016
"In each file" &nbsp should that be "In each folder"?
Jason
Jason le 3 Mar 2016
Yes. In each folder. Thanks for correction

Connectez-vous pour commenter.

 Réponse acceptée

Ahmet Cecen
Ahmet Cecen le 3 Mar 2016
Grab a list of all the folders in a given month using something like:
files = dir('198001*');
Check MATLAB Regex for more elaborate sub-set extraction schemes you might need later here: http://www.mathworks.com/help/matlab/ref/regexp.html
You can then read all mat files in those folders with a for loop like:
for k = 1:length(files)
Data{k} = load([files(k).name,'\nameofmatfileinside.mat']);
end
This assumes the name of the matfile is the same inside all of those folders, which I suspect is the case. Also the direction of the directory slash might differ based on operating system.

7 commentaires

Jason
Jason le 3 Mar 2016
Thanks for reply. What about the name of matfile is different, its name is the folder name, like '19800101.mat'?
I write by myself. I think it is works.
Data{k}=load([files(k).name, '\', files(k).name, '.mat'])
Jason
Jason le 3 Mar 2016
for "files = dir('198001*');" it seems to me I only can create it 12 times since there are 12 months? do you have more efficient way?
Something along the lines of the below should work:
for i=1:12
if i<10
currentrgx = ['19800',num2str(i),'*'];
else
currentrgx = ['1980',num2str(i),'*'];
end
files = dir(currentrgx);
end
No need for an if-statement:
for i=1:12,
currentgrx = sprintf('1980%02d*',i)
% files = dir(currentrgx);
end
Ahmet Cecen
Ahmet Cecen le 3 Mar 2016
Ooh, nice.
Jason
Jason le 4 Mar 2016
Thanks for providing such efficient algorithm

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur File Operations dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by