为什么sum(X,1)是MATLAB中列的总和?

Gtk*_*ker 14 matlab dimensions

>> X = [0 1 2
        3 4 5]

>> sum(X, 1)

ans =

     3     5     7
Run Code Online (Sandbox Code Playgroud)

sum(X, 1)应该按照文件所说的1st维度()求和:

S = SUM(X,DIM)沿维度DIM求和.

但为什么它实际上是沿2nd维度()求和的?

Jon*_*nas 26

在我看来,它与其他一切完全一致.

sum(A,dim)沿着维度暗淡的方向求和.

行被计为"向下",因此sum(A,1)总和"向下".列"向右"计数,因此sum(A,2)"向右"求和.

另一种看待这种情况的方法是通过获取总和将sum(A,dim)维度折叠dim为1.因此,沿着维度1求和的4x3阵列折叠第一维,导致1x3阵列.

  • 我还用"昏暗是压扁的方式"的方法将它直接放在我的脑海中.还要考虑具有3个或更多维度的数组; 对我来说,当你摆脱2D案例时,更容易理解为什么它应该是这样的. (9认同)
  • +1不仅仅是复制粘贴文档(Gtker已阅读但未理解),而是解释如何解释它. (3认同)

Amb*_*ber 2

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

B = sum(A,dim) 沿标量 dim 指定的 A 维度求和。dim 输入是从 1 到 N 的整数值,其中 N 是 A 中的维度数。将 dim 设置为 1 可以计算每列的总和,设置为 2 可以计算行的总和,等等。

你的猜测和我的一样好。