一、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函数都是一个非常灵活的,容易理解和使用的函数。