Import multiple data files and assign to variables

7 views (last 30 days)
I would like to import multiple data files and assign their contents to a variable.
BurnIn_2ndary_20150527_1940.mat
BurnIn_2ndary_20150528_1500.mat
BurnIn_2ndary_20150528_2200.mat
BurnIn_2ndary_20150529_1500.mat
BurnIn_2ndary_20150530_1000.mat
BurnIn_2ndary_20150530_2200.mat
BurnIn_2ndary_20150531_1600.mat
Each file consists of a 7x4 matrix (called 'details') that consists of the mean, std, min, and max values for 7 different parameters determined by data from its original file.
I am continually adding files to the folder for each set of data I get daily sometimes twice a day. I need to be able to import all files and assign them to different variables that could range to infinity (because I am continuously adding files).
I tried this
dir *2ndary*.mat
files = dir('*.mat');
for i=1:length(files)
eval(['load ' files(i).name]);
end
But I still don't know how to assign each matrix to a new variable for further use. I am worried that maybe because each matrix is called 'details' in each file from previous code might cause an issue

Accepted Answer

Stephen23
Stephen23 on 27 Jul 2015
Edited: Stephen23 on 25 Jun 2019
You should load the files into a variable, such as into a cell array:
C{k} = load(...);
or into a non-scalar structure, which would be versatile and efficient:
S(k) = load(...);
Note that you can also select the variables to load:
S(k) = load(...,'varname');
Avoid eval for trivial code like that:
  2 Comments
Calabrese
Calabrese on 27 Jul 2015
Thank you for the tip on eval. Once I bring these files in I plan to create 7 different plots, one for each parameter. Each parameter plot will have the mean, std, min and max values for the corresponding day for which the data was taken over a continuing period of time.
What would be the best way to load in the data, in your opinion, to process what I need to do with it? Please provide an example if you can
I plan to load in the files and assign the same row on each file to one of the 1 of the 7 different parameters (which will be a matrix) that can continually grow.
Stephen23
Stephen23 on 28 Jul 2015
Edited: Stephen23 on 28 Jul 2015
Load the data into a non-scalar structure, as I explained at the beginning of my answer. And read the link to know how to access the data inside of it.

Sign in to comment.

More Answers (0)

Categories

Find more on Structures in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!