您的位置:

matlab中的sum函数

一、sum函数的基本用法

sum(A) 
sum(A,dim)

sum函数在matlab中是一个很常用的函数,它的作用是对数组或矩阵中的元素进行求和。可以有两种调用方式:1.输入一个参数,对于输入的矩阵或数组中所有元素求和;2.输入两个参数,对于第二个参数指定的维度(第一维为1,第二维为2,以此类推)求和。

二、两个参数调用sum函数

B = sum(A,dim)

在输入两个参数时,sum函数会将输入的矩阵或数组沿着指定的维度进行求和。比如:

A = [1 2 3; 4 5 6];
sum(A,1) % 沿着第一维进行求和,输出结果为 [5 7 9]
sum(A,2) % 沿着第二维进行求和,输出结果为 [6; 15]

除了这两个参数,sum函数还可以额外输入一个选项参数:'native''default'。当数组元素为整数类型时,使用'native'参数会生成不同类型(比如int64)的向量或数组,而使用'default'参数即可正常的返回数据类型。默认情况下,'default'参数是被自动使用的。

三、sum函数的一些高级选项

B = sum(A, ..., 'double')
B = sum(A, ..., 'native')
B = sum(A, ..., 'omitnan')
B = sum(A, ..., 'includenan')
B = sum(___, 'double', 'native', ...)

除了最基本的输入参数外,sum函数还有一些高级选项:

1. 'double'参数

在输入'double'参数时,sum函数会生成浮点数向量或数组,即使输入的数组元素是整数型的。使用这个参数可以避免数据类型转换错误和舍入误差,特别是在运算中出现非常小的值时。

A = [1 2; 3 4];
sum(A,'double') % 输出结果为 10.0000

2. 'native'参数

在输入'native'参数时,sum函数会生成指定类型的向量或数组,即使使用默认的选项。这个参数只适用于整数类型的数组。

A = [int32(1), int32(2) ;int32(3), int32(4)];
B = sum(A, 'native') % 输出结果为 [int32(4), int32(6)]

3. 'omitnan'参数

当输入的数组中存在NaN元素(Not a Number, 比如0/0或Inf/Inf)时,如果使用默认的选项,sum函数会将整个求和结果定义为NaN。而使用'omitnan'参数时,sum函数会忽略NaN元素,只对非NaN的元素求和。

A = [1 NaN 3; 4 5 NaN];
sum(A) % 输出结果为 nan
sum(A,'omitnan') % 输出结果为 13

4. 'includenan'参数

'omitnan'相反,使用'includenan'参数时,sum函数只对NaN元素进行求和。

A = [1 NaN 3; 4 5 NaN];
sum(A,'includenan') % 输出结果为 NaN 5 NaN

5. 多个参数同时使用

可以同时使用'double''native'参数,同理,也可以同时使用多个其他的高级参数。

A = [int32(1), int32(2) ;int32(3), int32(4)];
B = sum(A, 'double', 'native') % 输出结果为 6.0000

四、总结

通过本文的介绍可以看出,sum函数在matlab中是一个非常实用的函数,尤其是对于对矩阵、数组中元素进行求和时。无论是基本的应用还是高级的选项,sum函数都是一个非常灵活的,容易理解和使用的函数。