來源: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)。
另請參閱