一、sum函数的基本使用
sum函数是matlab中的一个非常基础的函数,用于计算矩阵或数组中元素之和。使用sum函数可以方便地进行数据分析、统计等操作。
使用sum函数的基本语法如下:
sum(A,dim)
其中,A为矩阵或数组,dim为维度参数,表示对哪一维度进行求和操作。如果不指定dim,则默认对所有维度进行求和操作。
例如,如果有一个3x4的矩阵A:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
则可以使用以下语句对A进行求和操作:
sum(A)
输出结果为:
ans = 45 54 63 72
因为不指定dim时默认对所有维度进行求和,所以输出的结果是一个1x4的行向量。其中第一个元素为A的第一列元素之和,第二个元素为A的第二列元素之和,以此类推。
二、sum函数的常用扩展用法
1. 指定dim参数进行求和操作
sum函数的dim参数可以指定对哪一个维度进行求和操作。如果有一个3x4的矩阵B:
B = [1 2 3 4; 5 6 7 8; 9 10 11 12];
我们可以使用以下语句对B的第一维(行)进行求和操作:
sum(B,1)
输出结果为:
ans = 15 18 21 24
因为指定了dim=1,所以对B的每一列进行求和,输出结果为1x4的行向量。其中第一个元素为B的第一列元素之和,第二个元素为B的第二列元素之和,以此类推。
2. 求矩阵每行或每列的元素之和
在实际数据分析中,我们常常需要求矩阵每行或每列的元素之和。可以使用sum函数的另一种用法实现:
sum(B,2)
输出结果为:
ans = 10 26 42
因为指定了dim=2,所以对B的每一行进行求和,输出结果为3x1的列向量。其中第一个元素为B的第一行元素之和,第二个元素为B的第二行元素之和,以此类推。
3. 对指定区域进行求和操作
除了对整个矩阵进行求和外,sum函数还可以对矩阵中的指定区域进行求和操作。例如,有一个5x5的矩阵C:
C = magic(5)
可以使用以下语句对C的第2~4行、第3~5列的区域进行求和操作:
sum(sum(C(2:4,3:5)))
输出结果为:
ans = 138
通过C(2:4,3:5)选出了指定区域,再使用sum函数的嵌套进行求和操作。
4. 对含NaN值的矩阵求和
当矩阵中存在NaN值时,直接使用sum函数进行求和会出现问题。例如,有一个3x3的矩阵D:
D = [1 2 NaN; 4 NaN 6; 7 8 9];
如果直接使用sum函数对D进行求和:
sum(D)
会输出以下结果:
ans = 12 NaN NaN 19
这是会出现NaN值的原因是,NaN含义为“Not a number”,它是一种特殊的值,代表一个不存在或未定义的数值。
为了避免出现NaN值,可以使用nanmean函数或nansum函数进行求和操作。nanmean函数会忽略掉矩阵中的NaN值,计算平均值;nansum函数也会忽略掉NaN值,进行求和操作。
例如,使用nansum函数对D进行求和:
nansum(D)
输出结果为:
ans = 28
三、代码示例
基本使用
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
sum(A)
求矩阵每行或每列的元素之和
sum(A,2)
对指定区域进行求和操作
C = magic(5);
sum(sum(C(2:4,3:5)))
对含NaN值的矩阵求和
D = [1 2 NaN; 4 NaN 6; 7 8 9];
nansum(D)
上述代码示例可以用于自学和练习。