Why is sum(X, 1) the sum of the columns in MATLAB?

26,011

Solution 1

In my opinion, it is perfectly consistent with everything else.

sum(A,dim) sums along the direction of dimension dim.

Rows are counted "down", so sum(A,1) sums "down". Columns are counted "to the right", so sum(A,2) sums "to the right".

Another way to look at this is that sum(A,dim) collapses dimension dim to 1 by taking the sum. Thus, a 4x3 array summed along dimension 1 collapses the first dimension, leading to a 1x3 array.

Solution 2

1 means column, according to http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sum.html

B = sum(A,dim) sums along the dimension of A specified by scalar dim. The dim input is an integer value from 1 to N, where N is the number of dimensions in A. Set dim to 1 to compute the sum of each column, 2 to sum rows, etc.

Solution 3

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sum.html

B = sum(A,dim) sums along the dimension of A specified by scalar dim. The dim input is an integer value from 1 to N, where N is the number of dimensions in A. Set dim to 1 to compute the sum of each column, 2 to sum rows, etc.

Your guess is as good as mine.

Share:
26,011
Gtker
Author by

Gtker

Updated on October 29, 2020

Comments

  • Gtker
    Gtker over 3 years
    >> X = [0 1 2
            3 4 5]
    
    >> sum(X, 1)
    
    ans =
    
         3     5     7
    

    sum(X, 1) should sum along the 1st dimension(row) as per the document says:

    S = SUM(X,DIM) sums along the dimension DIM.

    But why does it actually sums along the 2nd dimension(column)?