>> X = [0 1 2
3 4 5]
>> sum(X, 1)
ans =
3 5 7
sum(X, 1)
应该按照文档所说的沿1st
维度(行)求和:
S = SUM(X,DIM) 沿维度 DIM 求和。
但为什么它实际上沿2nd
维度(列)求和?
>> X = [0 1 2
3 4 5]
>> sum(X, 1)
ans =
3 5 7
sum(X, 1)
应该按照文档所说的沿1st
维度(行)求和:
S = SUM(X,DIM) 沿维度 DIM 求和。
但为什么它实际上沿2nd
维度(列)求和?
在我看来,它与其他一切完全一致。
sum(A,dim)
沿维度 dim方向求和。
行数“向下”,因此sum(A,1)
总和“向下”。列数“向右”,因此sum(A,2)
总和“向右”。
另一种看待这个问题的方法是通过求和将sum(A,dim)
维度折叠为 1。dim
因此,沿维度 1 求和的 4x3 数组会折叠第一个维度,从而导致 1x3 数组。
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 可计算行的总和,等等。
你的猜测和我的一样好。
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 可计算行的总和,等等。
我认为这方面的 Matlab 文档非常清楚。它指出:
B = sum(A,dim) 沿标量 dim 指定的 A 维度求和。dim 输入是一个从 1 到 N 的整数值,其中 N 是 A 中的维数。将 dim 设置为 1 可计算每列的总和,2 可计算行的总和,等等。
欢迎您认为 Matlab 是错误的,但它不会改变!