來源:https://ww2.mathworks.cn/help/matlab/ref/sum.html?searchHighlight=sum&s_tid=doc_srchtitle#btv6ok6-1-dim
sum
說明
示例
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') 則忽略這些值。
示例
全部折疊
矩陣列總和
創建一個矩陣並計算每列中元素的總和。
A = 3×3
1 3 2
4 2 5
6 1 4
矩陣行總和
創建一個矩陣並計算每行中元素的總和。
A = 3×3
1 3 2
4 2 5
6 1 4
數組切片總和
使用向量維度參數來操作數組的特定切片。
創建所有元素為 1 的三維數組。
要對 A 的每個頁面中的所有元素求和,請使用向量維度參數指定要求和的維度(行和列)。由於兩個頁面均為 4×3 矩陣,因此每頁的總和為 12。
S1 =
S1(:,:,1) =
12
S1(:,:,2) =
12
如果沿第一個維度對 A 進行切片,則可以對得到的 4 個頁面的元素求和,每個頁面為 3×2 矩陣。
沿第二個維度切片,每個頁面總和超過 4×2 矩陣。
從 R2018b 開始,要對數組的所有維度求和,可以在向量維度參數中指定每個維度,或使用 'all' 選項。
三維數組的總和
創建一個由 1 值組成的 4×2×3 數組,並計算沿第三個維度的總和。
32 位整數之和
創建一個由 32 位整數組成的向量,並通過將輸出類型指定為 native 來計算其元素的 int32 總和。
總和,不包括 NaN
創建一個向量並計算其總和,不包括 NaN 值。
如果您不指定 'omitnan',則 sum(A) 會返回 NaN。
輸入參數
全部折疊
A - 輸入數組
向量 | 矩陣 | 多維數組
輸入數組,指定為向量、矩陣或多維數組。
數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | duration
復數支持: 是
dim - 沿其運算的維度
正整數標量
沿其運算的維度,指定為正整數標量。如果未指定值,則默認值是大小不等於 1 的第一個數組維度。
維度 dim 表示長度減至 1 的維度。size(S,dim) 為 1,而所有其他維度的大小保持不變。
以一個二維輸入數組 A 為例:
-
sum(A,1) 對 A 的列中的連續元素進行求和並返回一個包含每列之和的行向量。
-
sum(A,2) 對 A 的行中的連續元素進行求和並返回一個包含每行之和的列向量。
當 dim 大於 ndims(A) 或者 size(A,dim) 為 1 時,sum 返回 A。
數據類型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
vecdim - 維度向量
正整數向量
維度向量,指定為正整數向量。每個元素代表輸入數組的一個維度。指定的操作維度的輸出長度為 1,而其他保持不變。
以 2×3×3 輸入數組 A 為例。然后 sum(A,[1 2]) 返回 1×1×3 數組,其元素是 A 的每個頁面的總和。

數據類型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
outtype - 輸出數據類型
'default' (默認) | 'double' | 'native'
輸出數據類型,指定為 'default'、'double' 或 'native'。這些選項還指定執行運算采用的數據類型。
outtype |
輸出數據類型 |
'default' |
double,但當輸入數據類型為 single 或 duration 時,輸出類型則為 'native' |
'double' |
double,但當數據類型為 duration 時不支持 'double' 類型 |
'native' |
與輸入相同的數據類型,但當輸入數據類型為 char 時不支持 'native' |
數據類型: char
nanflag - NaN 條件
‘includenan’ (默認) | ‘omitnan’
NaN 條件,指定為下列值之一:
數據類型: char
擴展功能
tall 數組
對行數太多而無法放入內存的數組進行計算。
此函數完全支持 tall 數組。有關詳細信息,請參閱 tall 數組。
C/C++ 代碼生成
使用 MATLAB® Coder™ 生成 C 代碼和 C++ 代碼。
GPU 數組
通過使用 Parallel Computing Toolbox™ 在圖形處理單元 (GPU) 上運行來加快代碼執行。
用法說明和限制:
有關詳細信息,請參閱Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式數組
使用 Parallel Computing Toolbox™ 在群集的組合內存中對大型數組進行分區。
用法說明和限制:
有關詳細信息,請參閱Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
另請參閱