Info

This question is closed. Reopen it to edit or answer.

Need to conduct analysis across four .mat files at once - how do I load multiple .mat files?

1 view (last 30 days)
I am trying to create a function that utilizes a struct containing four different sets of data so that I can analyze data across all four sets. What do I need to do? i.e. I have dataset1.mat, dataset2.mat, dataset3.mat, and dataset4.mat and I want to track data across all 4 of these.
  2 Comments
Stephen23
Stephen23 on 16 Aug 2020
Edited: Stephen23 on 16 Aug 2020
Follow the examples in the documentation:
It is more reliable to load into an output variable (which is a scalar structure), e.g.:
S = load(...);
Bin John
Bin John on 16 Aug 2020
Hi, thanks for your response!
This is the function I have built, but when I run LoadFiles in my command window, I get the error, "Conversion to double from struct is not possible." What am I doing wrong?
function LoadFiles
filenames = {'sessionData1.mat','sessionData2.mat','sessionData3.mat', 'sessionData4.mat'};
s = [1 4];
for i = 1:numel(filenames)
s(i) = load(filenames{1,i});
end
end

Answers (1)

Antonio Ciociola
Antonio Ciociola on 16 Aug 2020
The problem seems to be related to this instruction:
s = [1 4];
But then you're loading the mat files in this way:
s(i) = load(filenames{1,i});
So,you're trying to put a structure into an array of double.
Try to change the code by removing the wrong line of code (s=[1 4])
  2 Comments
Antonio Ciociola
Antonio Ciociola on 16 Aug 2020
Edited: Antonio Ciociola on 16 Aug 2020
This happens because you have different mat files. Try with this line of code:
s{i} = load(filenames{1,i});

Community Treasure Hunt

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

Start Hunting!