How to concatenate multiple .mat files and generate a 3D matrix?

조회 수: 3(최근 30일)
I have 100 files which are 30482x43 (number of data x layers), and what I am trying to do is make a single 30482x100x43 matrix.
I would appreciate your help please!!

채택된 답변

Stephen23 2022년 8월 3일
편집: Stephen23 2022년 8월 3일
"I have 100 files ..."
which are probably named using some sequential numbering, so you will need to take that into account in the code:
P = 'absolute or relative path to where the files are saved';
S = dir(fullfile(P,'*.mat'));
S = natsortfiles(S); % download:
for k = 1:numel(S)
F = fullfile(P,S(k).name);
L = load(F);
S(k).data = L.nameOfTheVariableWhichYouDidNotTellUs;
A = permute(cat(3,,[1,3,2]);

추가 답변(1개)

KSSV 2022년 8월 3일
matFiles = dir('*.mat') ;
N = length(matFiles) ;
iwant = zeros(3048,43,N) ;
for i = 1:N
S = matfile(matFiles(i).name) ;
iwant(:,:,i) = S.myvar ; % myvar is the variable in your mat file




Community Treasure Hunt

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

Start Hunting!

Translated by