matlab中sum函数

a=sum(A)  %列求和

b=sum(A,2) %行求和

c=sum(A(:)) %矩阵求和

假定A为一个矩阵:

sum(A)以矩阵A的每一列为对象,对一列内的数字求和。

sum(A,2)以矩阵A的每一行为对象,对一行内的数字求和。

通过下面的例子,可以明白:

>> a=[1 2 3; 4 5 6; 7 8 9]

a =

1  2  3

4  5  6

7  8  9

>> sum(a)

ans =

12  15  18

>> sum(a,2)

ans =

6

15

24

>> sum(a(:))

ans =

45


当图像为RGB三通道时,假设A为三通道图像,则sum(A,3)运算后的值为每个通道对应位置的值各自相加,比如在位置p三通道像素值分别为r,g,b,则在p位置运算后的值为r+g+b,具体看下面的代码:

[cpp]  view plain  copy
  1. "font-size:18px;">>> A=[1 2 3;4 5 6;7 8 9]  
  2.   
  3. A =  
  4.   
  5.      1     2     3  
  6.      4     5     6  
  7.      7     8     9  
  8.   
  9. >> bb=repmat(A,[1 1 3])  
  10.   
  11. bb(:,:,1) =  
  12.   
  13.      1     2     3  
  14.      4     5     6  
  15.      7     8     9  
  16.   
  17.   
  18. bb(:,:,2) =  
  19.   
  20.      1     2     3  
  21.      4     5     6  
  22.      7     8     9  
  23.   
  24.   
  25. bb(:,:,3) =  
  26.   
  27.      1     2     3  
  28.      4     5     6  
  29.      7     8     9  
  30.   
  31. >> cc=sum(bb,3)  
  32.   
  33. cc =  
  34.   
  35.      3     6     9  
  36.     12    15    18  
  37.     21    24    27  

你可能感兴趣的:(matlab)