Matlab函数学习---sum函数(计算矩阵、数组和向量元素总和)

实例1:创建一个向量并计算向量元素总和

实例2:创建一个矩阵并计算矩阵每列元素的总和

实例3:创建一个矩阵并计算矩阵每行元素的总和

实例4:创建一个三维数组并计算数组特定切片元素(维度1*维度2)的总和

实例5:创建一个三维数组并计算数组特定切片元素(维度2*维度3)的总和

实例6:创建一个三维数组并计算数组特定切片元素(维度1*维度3)的总和

实例7:创建一个三维数组并计算数组所有维度元素的总和

实例8:创建一个三维数组并计算数组沿第三维度元素的总和

实例9:创建一个int32类型向量并计算其元素的总和(输出类型不变)

实例10:创建一个向量并计算其元素的总和(不包括NaN值)

本资源配套完整源码和绘图下载

 

语法描述:

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,2) 是包含每一行总和的列向量

S = sum(A,vecdim)  根据向量 vecdim 中指定的维度对 A 的元素求和。例如,如果 A 是矩阵,则 sum(A,[1 2]) 是 A 中所有元素的总和,因为矩阵的每个元素包含在由维度 1 和 2 定义的数组切片中

S = sum(___,outtype)   使用上述语法中的任何输入参数返回指定数据类型的总和outtype 可以是 'default''double' 或 'native'

S = sum(___,nanflag)   指定在上述任意语法的计算中包括还是忽略 NaN 值sum(A,'includenan') 会在计算中包括所有 NaN 值,而 sum(A,'omitnan') 则忽略这些值

实例1:创建一个向量并计算向量元素总和

A = 1:10;    %创建一个1-10的向量
S = sum(A)   %对向量A求和

    

实例2:创建一个矩阵并计算矩阵每列元素的总和

A = [1 3 2; 4 2 5; 6 1 4];   %创建一个3*3的矩阵A
S = sum(A)                   %对矩阵A的每列元素进行求和

实例3:创建一个矩阵并计算矩阵每行元素的总和

A = [1 3 2; 4 2 5; 6 1 4];     %创建一个3*3的矩阵A
S = sum(A,2)                   %对矩阵A的每行元素进行求和

        

实例4:创建一个三维数组并计算数组特定切片元素(维度1*维度2)的总和

%沿第三个维度对 A 进行切片
A = ones(4,3,2);    %创建行(维度1)*列(维度2)*高(维度3)为4*3*2,所有元素都为 1的三维数组A
A(2,2,2) = 5;       %将三维数组的维度3中,第2行,第2列的元素赋值为5
%沿第三个维度对 A 进行切片,维度3一共包含2个页面,每个页面均为 4×3 矩阵
S1 = sum(A,[1 2])   %维度3的两个页面均为 4×3 矩阵,分别计算维度3中每页的总和

                                              

             三维数组A                                                          第三维度进行切片

维度3的两个页面(切片1和切片2)的元素和各页面元素总和S1分别为:

                         

实例5:创建一个三维数组并计算数组特定切片元素(维度2*维度3)的总和

%沿第一个维度对 A 进行切片
A = ones(4,3,2);    %创建行(维度1)*列(维度2)*高(维度3)为4*3*2,所有元素都为 1的三维数组A
A(1,1,2) = 5;       %将三维数组的维度3中,第1行,第1列的元素赋值为5
%使用向量维度参数指定要求和元素的维度(行和列),此为计算维度2(列)和维度3(高)的元素总和
%沿第一个维度对 A 进行切片,维度1一共包含4个页面,每个页面均为 2×3 矩阵
S1 = sum(A,[2 3])   %分别计算维度1中每页的总和

                                      

             三维数组A                                                   第一维度进行切片

维度3的两个页面(切片1和切片2)的元素为:                            第一维度进行切片的各页面元素总和S1分别为:

         

注(维度解释):对于下例中3*4的矩阵A,行是维度1(矩阵A对应的是3行),列是维度2(矩阵A对应的是4列),如下图所示:

实例6:创建一个三维数组并计算数组特定切片元素(维度1*维度3)的总和

%沿第二个维度对 A 进行切片
A = ones(4,3,2);    %创建行(维度1)*列(维度2)*高(维度3)为4*3*2,所有元素都为 1的三维数组A
A(1,1,2) = 5;       %将三维数组的维度3中,第1行,第1列的元素赋值为5
%使用向量维度参数指定要求和元素的维度(行和列),此为计算维度1(行)和维度3(高)的元素总和
%沿第二个维度对 A 进行切片,维度2一共包含3个页面,每个页面均为 4×2 矩阵
S1 = sum(A,[1 3])   %分别计算维度2中每页的总和

                                      

             三维数组A                                                   第二维度进行切片

维度3的两个页面(切片1和切片2)的元素为:                            第二维度进行切片的各页面元素总和S1分别为:

         

实例7:创建一个三维数组并计算数组所有维度元素的总和

方法一:

%计算数组所有维度元素的总和
A = ones(4,3,2);    %创建行(维度1)*列(维度2)*高(维度3)为4*3*2,所有元素都为 1的三维数组A
A(1,1,2) = 5;       %将三维数组的维度3中,第1行,第1列的元素赋值为5
S1 = sum(A,[1 2 3])   %计算维度1、维度2和维度3中所有元素的总和

  方法二:

%计算数组所有维度元素的总和
A = ones(4,3,2);    %创建行(维度1)*列(维度2)*高(维度3)为4*3*2,所有元素都为 1的三维数组A
A(1,1,2) = 5;       %将三维数组的维度3中,第1行,第1列的元素赋值为5
%S1 = sum(A,[1 2 3])   %计算维度1、维度2和维度3中所有元素的总和
S1 = sum(A,'all')    %计算数组A中所有维度的所有元素的总和

                                    

             三维数组A 

维度3的两个页面(切片1和切片2)的元素为:               三个维度元素总和S1为:

         

实例8:创建一个三维数组并计算数组沿第三维度元素的总和

%计算数组所有维度元素的总和
A = ones(4,3,2);    %创建行(维度1)*列(维度2)*高(维度3)为4*3*2,所有元素都为 1的三维数组A
A(1,1,2) = 5;       %将三维数组的维度3中,第1行,第1列的元素赋值为5
S1 = sum(A,3)       %计算数组沿第三维度元素的总和

                                               

             三维数组A                          沿第三维度元素的总和

维度3的两个页面(切片1和切片2)的元素为:               沿第三维度元素的总和S1为:

          

实例9:创建一个int32类型向量并计算其元素的总和(输出类型不变)

A = int32(1:10);        %创建一个由 32 位整数类型(int32)组成的向量A
S = sum(A,'native')     %计算向量A中元素的总和,并指定输出类型和输入数据类型(int32)相同

向量A的元素为:              输出总和S为:

  

实例10:创建一个向量并计算其元素的总和(不包括NaN值)

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];    %创建一个包含NaN值的向量
S = sum(A,'omitnan')     %计算向量A中不包括 NaN 值的元素的总和
%注:如果您不指定 'omitnan',则 sum(A) 会返回 NaN

  向量A的元素为:              输出总和S为:

              

 

输入参数:

1、输入数组A-----指定为向量、矩阵或多维数组

  • 如果 A 是标量,则 sum(A) 返回 A

  • 如果 A 是 0×0 空矩阵,则 sum(A) 返回 0

2、维度向量dim-------指定为正整数向量

每个元素代表输入数组的一个维度。指定的操作维度的输出长度为 1,而其他保持不变。

以 2×3×3 输入数组 A 为例。则 sum(A,[1 2]) 返回 1×1×3 数组,其元素是 A 的每个页面的总和

3、输出数据类型-------指定为 'default''double' 或 'native'

这些选项还指定执行运算采用的数据类型

4、NaN 条件-------指定为 'includenan'或 'omitnan'

  • 'includenan' - 计算总和时包括 NaN 值,生成 NaN

  • 'omitnan' - 忽略输入中的所有 NaN 值。

参考链接

​​​​​​​

  • 56
    点赞
  • 285
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
sumMatlab中的一个函数,用于计算数组元素总和。 它可以通过不同的参数来实现不同的功能。当使用sum(A)时,它将返回数组A所有元素总和。如果使用sum(A,'all'),它将返回数组A中所有元素总和。而当使用sum(A,dim)时,它将对矩阵A的每一列或每一行进行求和,并返回行向量或列向量。 通过设置sum函数的参数列表中的参数dim,可以指定是对每一列还是每一行进行求和。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [matlab函数sum和size用法-matlab函数sum和size用法.doc](https://download.csdn.net/download/weixin_39841365/11535205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [matlabsum函数的用法](https://blog.csdn.net/iii66yy/article/details/128474643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [MATLABsum函数](https://blog.csdn.net/a9062985/article/details/118671405)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦我飞也

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值