学习:sum

来源:互联网 发布:淘宝如何分期买手机 编辑:程序博客网 时间:2024/06/15 20:14
函数功能
求数组元素的总和
使用方法
B = sum(A)
返回数组A不同维数的总和。
如果A是一个向量,sum(A) 返回所有元素的总和。
如果A是一个矩阵,sum(A) 把A的列作为向量,返回一个包含每一列所有元素的总和的行向量。
如果A是一个多维数组,sum(A) 把没一维看做一个数组,返回一个行向量数组。
B = sum(A,dim)
沿着A的每一维计算总和用指定标量dim,dim是一个从1到N的整数值,其中N是A的维数。dim为1就是计算A的每一列的总和,2计算A的每一行的总和,以此类推。
B = sum(..., 'double')和B = sum(..., dim,'double')
在双精度下(double)执行相加求和,返回double类型的结果,即使A是single数据类型或者integer数据类型。默认的是integer数据类型。
B = sum(..., 'native')和B = sum(..., dim,'native')
在native数据类型下执行相加求和,返回相同类型的结果,默认的是single和double.数据类型。
备注
sum(diag(X)) 是求X的迹。
应用举例 
三阶幻方为:
M = magic(3) 
M = 
     8    1    6
     3    5    7
     4    9    2
因为三阶幻方每一列元素总和是相同的。
sum(M) =
     15    15    15
想求每一行元素的的总和,可以用转置或者用dim参数。
转置:
sum(M') = 
     15    15    15
用dim参数:
sum(M,1)
ans =
    15    15    15
支持非double数据类型
sum函数不仅仅支持double类型数据。
single数据类型:
sum函数可以应用到single数据类型并返回一个single类型的结果。比如:
sum(single([2 5 8]))
ans =
     15
class(ans)
ans =
single
Integer数据类型
sum函数应用到以下Integer数据类型时,MATLAB软件返回一个double数据类型的结果:
       int8 and uint8
      int16 and uint16
      int32 and uint32
例如:
sum(single([2 5 8]));
class(ans)
ans =
single
sum([2 5 8]);
class(ans)
ans =
double
如果你想MATLAB对Integer数据类型的结果是相同的Integer数据类型,可以用:
sum(int8([2 5 8], 'native');
class(ans)
ans =
int8
0 0
原创粉丝点击