How to average first two dimension of 3D array/matrix?

28 vues (au cours des 30 derniers jours)
UTKARSH VERMA
UTKARSH VERMA le 1 Sep 2021
Commenté : UTKARSH VERMA le 1 Sep 2021
Hi all,
I am calculating the average of first two dimension of a 3D matrix but it is showing following error:
Error using sum
Dimension argument must be a positive integer scalar within indexing range.
Error in mean (line 116)
y = sum(x, dim, flag) ./ size(x,dim);
Also, I have used a simplest example given in topic 'Mean of Array Page' in https://in.mathworks.com/help/matlab/ref/mean.html but I am getting same error.
I am using MATLAB 2018a
Please help!
Thanks in advance
  2 commentaires
KSSV
KSSV le 1 Sep 2021
Show us the example which you have tried and got error.
UTKARSH VERMA
UTKARSH VERMA le 1 Sep 2021
I have used a simplest example given in topic 'Mean of Array Page' in https://in.mathworks.com/help/matlab/ref/mean.html and I got an error:-
""Error using sum
Dimension argument must be a positive integer scalar within indexing range.
Error in mean (line 116)
y = sum(x, dim, flag) ./ size(x,dim);""
I guess my Matlab version is older (i.e. 2018a)

Connectez-vous pour commenter.

Réponse acceptée

Chunru
Chunru le 1 Sep 2021
Modifié(e) : Chunru le 1 Sep 2021
a = randi(3, 3, 4, 2)
a =
a(:,:,1) = 3 3 1 3 3 1 2 3 3 1 3 1 a(:,:,2) = 3 1 1 2 1 1 2 2 1 3 1 1
c = mean(reshape(a, [], size(a,3)))
c = 1×2
2.2500 1.5833

Plus de réponses (2)

Wan Ji
Wan Ji le 1 Sep 2021
Modifié(e) : Wan Ji le 1 Sep 2021
Just use mean function to average first two dimension of 3D matrix
a = rand(2,3,4); % I just use rand function so the result is randomly displayed
b = mean(a,1:2) % 1:2 means the first two dimension
The result is
b = mean(a,1:2)
b(:,:,1) =
0.5258
b(:,:,2) =
0.2759
b(:,:,3) =
0.6214
b(:,:,4) =
0.4449
If you want to get array of b
Then
b = squeeze(b) % or b = b(:);
So
b =
0.5258
0.2759
0.6214
0.4449
  1 commentaire
UTKARSH VERMA
UTKARSH VERMA le 1 Sep 2021
Thank you for replying.
I guess my Matlab version is older (i.e. 2018a) due to which I am not able to get my result and it's showing same problem.

Connectez-vous pour commenter.


Steven Lord
Steven Lord le 1 Sep 2021
The ability to specify a vector of dimensions over which to sum an array was introduced in release R2018b as stated in the Release Notes.
  1 commentaire
UTKARSH VERMA
UTKARSH VERMA le 1 Sep 2021
Thanks for sharing this information. I didn't know that.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by