一、sum函數的基本使用
sum函數是matlab中的一個非常基礎的函數,用於計算矩陣或數組中元素之和。使用sum函數可以方便地進行數據分析、統計等操作。
使用sum函數的基本語法如下:
sum(A,dim)
其中,A為矩陣或數組,dim為維度參數,表示對哪一維度進行求和操作。如果不指定dim,則默認對所有維度進行求和操作。
例如,如果有一個3×4的矩陣A:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
則可以使用以下語句對A進行求和操作:
sum(A)
輸出結果為:
ans = 45 54 63 72
因為不指定dim時默認對所有維度進行求和,所以輸出的結果是一個1×4的行向量。其中第一個元素為A的第一列元素之和,第二個元素為A的第二列元素之和,以此類推。
二、sum函數的常用擴展用法
1. 指定dim參數進行求和操作
sum函數的dim參數可以指定對哪一個維度進行求和操作。如果有一個3×4的矩陣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的每一列進行求和,輸出結果為1×4的行向量。其中第一個元素為B的第一列元素之和,第二個元素為B的第二列元素之和,以此類推。
2. 求矩陣每行或每列的元素之和
在實際數據分析中,我們常常需要求矩陣每行或每列的元素之和。可以使用sum函數的另一種用法實現:
sum(B,2)
輸出結果為:
ans = 10 26 42
因為指定了dim=2,所以對B的每一行進行求和,輸出結果為3×1的列向量。其中第一個元素為B的第一行元素之和,第二個元素為B的第二行元素之和,以此類推。
3. 對指定區域進行求和操作
除了對整個矩陣進行求和外,sum函數還可以對矩陣中的指定區域進行求和操作。例如,有一個5×5的矩陣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函數進行求和會出現問題。例如,有一個3×3的矩陣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)
上述代碼示例可以用於自學和練習。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280898.html