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

>> sum(X, 1)

ans =

     3     5     7

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

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

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

4

4 回答 4

26

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

sum(A,dim)沿维度 dim方向求和。

行数“向下”,因此sum(A,1)总和“向下”。列数“向右”,因此sum(A,2)总和“向右”。

另一种看待这个问题的方法是通过求和将sum(A,dim)维度折叠为 1。dim因此,沿维度 1 求和的 4x3 数组会折叠第一个维度,从而导致 1x3 数组。

于 2010-04-16T12:55:07.253 回答
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 可计算行的总和,等等。

你的猜测和我的一样好。

于 2010-04-16T07:25:30.960 回答
2

1 表示列,根据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 可计算行的总和,等等。

于 2010-04-16T07:26:32.117 回答
0

我认为这方面的 Matlab 文档非常清楚。它指出:

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

欢迎您认为 Matlab 是错误的,但它不会改变!

于 2010-04-16T07:26:35.963 回答