Find the average of each row, ignore the first column

5 visualizzazioni (ultimi 30 giorni)
This is pretty straight foward, probaly something small I'm missing but as the title says, mean of each row starting at element 2. I'm getting a 3 by 1 array when i should be getting a 4 by 1 sized array. So whats wrong with my code?
load C.dat
A = C(:,2:end);
Cave= mean(A)';

Risposta accettata

Voss
Voss il 30 Apr 2022
Let me make up a matrix C
C = (1:4)+[1;2;3;4]*10
C = 4×4
11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44
By default, mean operates along the first dimension, so this
A = C(:,2:end);
Cave= mean(A)'
Cave = 3×1
27 28 29
is taking the mean of each column of A, i.e., the mean of columns 2 through 4 of C. I imagine you intended to do this
A = C(:,2:end);
Cave= mean(A')'
Cave = 4×1
13 23 33 43
But a more direct way is to specify the dimension along which mean should operate. In this case, dimension 2 to operate along the rows
Cave = mean(C(:,2:end),2)
Cave = 4×1
13 23 33 43
  2 Commenti
Eric Brown
Eric Brown il 30 Apr 2022
Modificato: Eric Brown il 30 Apr 2022
I tried doing it the way you did in your last example but couldn't figure out the syntax of it so i gave up on that approach and did it the less effient way. Thank you for your help and explanation.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by