Find the average of each row, ignore the first column

24 次查看(过去 30 天)
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)';

采纳的回答

Voss
Voss 2022-4-30
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 个评论
Eric Brown
Eric Brown 2022-4-30
编辑:Eric Brown 2022-4-30
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by