![MATLAB函数及应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/601/47216601/b_47216601.jpg)
17.sum函数
sum函数的作用是对矩阵的元素求和。函数的语法格式为:
S=sum(A):返回A沿大小不等于1的第一个数组维度的元素之和。
· 如果A是向量,则sum(A)返回元素之和。
· 如果A是矩阵,则sum(A)将返回包含每列总和的行向量。
· 如果A是多维数组,则sum(A)沿大小不等于1的第一个数组维度计算,并将这些元素视为向量。此维度会变为1,而所有其他维度的大小保持不变。
S=sum(A,'all'):计算A的所有元素的总和。此语法适用于MATLAB R2018b及更高版本。
S=sum(A,dim):沿维度dim返回总和。以一个二维输入数组A为例:
· sum(A,1),对A的列中的连续元素进行求和并返回一个包含每列之和的行向量,效果如图1-5所示。
· sum(A,2),对A的行中的连续元素进行求和并返回一个包含每行之和的列向量,效果如图1-6所示。
当dim大于ndims(A)或者size(A,dim)为1时,sum返回A。
S=sum(A,vecdim)根据向量vecdim中指定的维度对A的元素求和。以2×3×3输入数组A为例。sum(A,[1 2])返回1×1×3数组,其元素是A的每个页面的总和,效果如图1-7所示。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P24_4185.jpg?sign=1738861506-VTztML50XLuep5KWm0wuBFWjGXS6xgZv-0-bc809f6dac99a30ae2940d7f127e4833)
图1-5 sum(A,1)求和结果
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P24_4189.jpg?sign=1738861506-hesvKnBo13SpwiGzN0qOMi7tncO3upjP-0-80596d7a68f1257082962d172cd77672)
图1-6 sum(A,2)求和结果
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P24_4193.jpg?sign=1738861506-WfS4n40vCRPFjmS0qzNz0x1Iik12FGAl-0-c0abd3e57698c207b21db7b72c3eabe9)
图1-7 sum(A,[1 2])求和结果
S=sum(___,outtype):返回指定数据类型的总和。outtype可以是'default'、'double'或'native'。
S=sum(___,nanflag):指定在上述任意语法的计算中包括还是忽略NaN值。NaN条件,指定为下列值之一:
· 'includenan':计算总和时包括NaN值,生成NaN。
· 'omitnan':忽略输入中的所有NaN值。
sum(A,'includenan'):在计算中包括所有NaN值,而sum(A,'omitnan')则忽略这些值。
【例1-17】创建一个由1值组成的4×2×3数组,并计算沿第三个维度的总和。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P25_4212.jpg?sign=1738861506-yzy5fPAfE270koWuaZErrtlzxUBGPnQq-0-9d85c8d0df96bb83240060b59ec1bcc4)