How to concatenate matrices to calculate mean

4 visualizzazioni (ultimi 30 giorni)
Joydeb Saha
Joydeb Saha il 20 Ott 2020
Commentato: Jan il 20 Ott 2020
I have 40 matrices DJF1979_1980_125 to DJF2019_2020_125. Each matrix is 3x721x1440. I want a mean of all the matrices, that will be a single matrix. Please help.
  2 Commenti
KSSV
KSSV il 20 Ott 2020
Read about mean, you can specify the dimension along which you want mean.
Stephen23
Stephen23 il 20 Ott 2020
Modificato: Stephen23 il 20 Ott 2020
"I have 40 matrices DJF1979_1980_125 to DJF2019_2020_125."
Accessing lots of numbered variables forces you into writing slow, ineffiicient, complex, buggy code:
The much better approach is to load data into an output variable
S = load(..)
and access its fields. Or use indexing with any type of array.

Accedi per commentare.

Risposte (2)

KSSV
KSSV il 20 Ott 2020
Let A be your matrix.....use
iwant = mean(A,3) ;
  8 Commenti
Joydeb Saha
Joydeb Saha il 20 Ott 2020
I think I need to write M = mean(A,3);
Joydeb Saha
Joydeb Saha il 20 Ott 2020
I think I need to write M = mean(A,1);

Accedi per commentare.


Jan
Jan il 20 Ott 2020
As Steven has mentioned already, this is the main problem:
"I have 40 matrices DJF1979_1980_125 to DJF2019_2020_125"
Do not use strange names of variables to store importand data, bevause this impedes the processing. If you load these variables from files, store them in an array instead:
List = dir('*.mat');
Data = cell(size(List));
for k = 1:numel(List)
Data{k} = load(fullfile(List(k).folder, List(k).name));
end
Then you can apply the mean() function either is another loop, or by cellfun, or concatenate the varibales in a 4th dimension at first:
AllData = cat(4, Data{:});
MeanData = mean(AllData, 3);
  3 Commenti
Stephen23
Stephen23 il 20 Ott 2020
If every mat file contain exactly one variable then you can do this inside the loop:
fnm = fullfile(List(k).folder, List(k).name);
Data(k) = struct2cell(load(fnm));
Jan
Jan il 20 Ott 2020
@Jaydeb Saha: I do not know the contents of these files. Maybe you want to import a specific variable only?

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices 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