How to use the cat function for a sequence of arrays?

3 visualizzazioni (ultimi 30 giorni)
I need to find the mean of 1800 arrays, size 421x561. I am currently just working with 3 of them, until I figure out the method. The arrays are named ir_U20_h15_RD_5853, ir_U20_h15_RD_5854, etc. (sequentially). I am trying to combine all the arrays into one 3D array, so I can take the mean of that. I tried the cat function, which is working just fine for the 3 files that I'm using right now, but how do I use it without listing out the names of 1800 arrays?
%to load multiple files%
for k = 5853:5855
filename = sprintf('ir_U20_h15_RD_%d.dat',k);
fullname1 = fullfile('C:\Users\sc56\Documents\CEE 498 EHO\A2\IR Dats\', filename);
load(fullname1);
end
%to combine the files into a single array%
C = cat(3, ir_U20_h15_RD_5853, ir_U20_h15_RD_5854, ir_U20_h15_RD_5855);

Risposte (1)

madhan ravi
madhan ravi il 2 Mar 2019
When your loading the file inside the loop save it in the third dimension within the loop.
  2 Commenti
Sam
Sam il 2 Mar 2019
Thanks for your help. I'm unsure how to do that. This is where I'm at:
%to load multiple files%
for k = 5853:5855
filename = sprintf('ir_U20_h15_RD_%d.dat',k);
fullname1 = fullfile('C:\Users\sc56\Documents\CEE 498 EHO\A2\IR Dats\', filename);
C(:,:,k)= load(fullname1);
end
but I get this error:
Unable to perform assignment because the size of the left side is 1-by-1 and the size
of the right side is 421-by-561.
madhan ravi
madhan ravi il 2 Mar 2019
C=zeros(421,561,numel(5853:5855)); % add this before the loop

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by