MATLAB Answers

I'm trying to write a code that import several data from multiple folder

53 views (last 30 days)
Ibrahim Soussi
Ibrahim Soussi on 14 Apr 2016
Commented: Ibrahim Soussi on 14 Apr 2016
I have a folder that contains 8 sub folders the each sub contains a data that has the same name in the other folder for example main folders name is rotation in the sub theirs side 1 to 8 in each folder theirs a FX.txt data how can i write a code that is going to read each data from the multiple folder i have no idea

  0 Comments

Sign in to comment.

Accepted Answer

Orion
Orion on 14 Apr 2016
Hi,
you need something like this (adapt it to your path and folders)
% Path of the main folder : Rotation
yourpath = 'C:\Users\YourName\Documents\MATLAB\Rotation';
% Get all the subfolders
ContentInFold = dir(yourpath);
SubFold = ContentInFold([ContentInFold.isdir]); % keep only the directories
% Loop on each folder
MyData = [];
for i = 3:length(SubFold) % start at 3 to skip . and ..
filetoread = fullfile(yourpath,SubFold(i).name,'FX.txt');
% then type your code to read the text files and store in one variable
fileID = fopen(filetoread);
MyData{end+1} = textscan(fileID,'%s\n'); % the format depends of your files
fclose(fileID);
end

  2 Comments

Ibrahim Soussi
Ibrahim Soussi on 14 Apr 2016
thank you for your help however it did work this is the folder and my data view i need to open the folder and get the fx data from each folder
<<
>>

Sign in to comment.

More Answers (1)

Orion
Orion on 14 Apr 2016
The code I showed should work. You just need to adapt it.
% Path of the main folder : Rotation
yourpath = 'H:\Inspection ProjectData\rotation1';
% Get all the subfolders
ContentInFold = dir(yourpath);
SubFold = ContentInFold([ContentInFold.isdir]); % keep only the directories
% Loop on each folder
MyData = [];
for i = 3:length(SubFold) % start at 3 to skip . and ..
filetoread = fullfile(yourpath,SubFold(i).name,'fx.txt'); % <- this is the "fx.txt" file of the ith subfolders
% then type your code to read the text files and store in one variable
fileID = fopen(filetoread);
MyData{end+1} = textscan(fileID,'%s\n'); % the format depends of your files
fclose(fileID);
end
the only line you should probably change is
MyData{end+1} = textscan(fileID,'%s\n');
because this depends on how the data are written in your file and I can't guess it.

  1 Comment

Sign in to comment.

Sign in to answer this question.