matlab中sum


來源: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 = 1:10;
S = sum(A)
S = 55
 
 

矩陣列總和

創建一個矩陣並計算每列中元素的總和。

A = [1 3 2; 4 2 5; 6 1 4]
A = 3×3

     1     3     2
     4     2     5
     6     1     4

S = sum(A)
S = 1×3

    11     6    11

 
 

矩陣行總和

創建一個矩陣並計算每行中元素的總和。

A = [1 3 2; 4 2 5; 6 1 4]
A = 3×3

     1     3     2
     4     2     5
     6     1     4

S = sum(A,2)
S = 3×1

     6
    11
    11

 
 

數組切片總和

使用向量維度參數來操作數組的特定切片。

創建所有元素為 1 的三維數組。

A = ones(4,3,2);

要對 A 的每個頁面中的所有元素求和,請使用向量維度參數指定要求和的維度(行和列)。由於兩個頁面均為 4×3 矩陣,因此每頁的總和為 12。

S1 = sum(A,[1 2])
S1 = 
S1(:,:,1) =

    12


S1(:,:,2) =

    12

如果沿第一個維度對 A 進行切片,則可以對得到的 4 個頁面的元素求和,每個頁面為 3×2 矩陣。

S2 = sum(A,[2 3])
S2 = 4×1

     6
     6
     6
     6

沿第二個維度切片,每個頁面總和超過 4×2 矩陣。

S3 = sum(A,[1 3])
S3 = 1×3

     8     8     8

從 R2018b 開始,要對數組的所有維度求和,可以在向量維度參數中指定每個維度,或使用 'all' 選項。

S4 = sum(A,[1 2 3])
S4 = 24
Sall = sum(A,'all')
Sall = 24
 
 

三維數組的總和

創建一個由 1 值組成的 4×2×3 數組,並計算沿第三個維度的總和。

A = ones(4,2,3);
S = sum(A,3)
S = 4×2

     3     3
     3     3
     3     3
     3     3

 
 

32 位整數之和

創建一個由 32 位整數組成的向量,並通過將輸出類型指定為 native 來計算其元素的 int32 總和。

A = int32(1:10);
S = sum(A,'native')
S = int32
    55
 
 

總和,不包括 NaN

創建一個向量並計算其總和,不包括 NaN 值。

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
S = sum(A,'omitnan')
S = 3.3250

如果您不指定 'omitnan',則 sum(A) 會返回 NaN

 
 

輸入參數

全部折疊

A - 輸入數組
向量 | 矩陣 | 多維數組

輸入數組,指定為向量、矩陣或多維數組。

  • 如果 A 是標量,則 sum(A) 返回 A

  • 如果 A 是 0×0 空矩陣,則 sum(A) 返回 0

 

數據類型: 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,但當輸入數據類型為 singleduration 時,輸出類型則為 'native'
'double' double,但當數據類型為 duration 時不支持 'double' 類型
'native' 與輸入相同的數據類型,但當輸入數據類型為 char 時不支持 'native'

數據類型: char

nanflag - NaN 條件
includenan’ (默認) | omitnan

NaN 條件,指定為下列值之一:

  • 'includenan' - 計算總和時包括 NaN 值,生成 NaN

  • 'omitnan' - 忽略輸入中的所有 NaN 值。

數據類型: char

擴展功能

此函數完全支持 tall 數組。有關詳細信息,請參閱 tall 數組

用法說明和限制:

 

 

GPU 數組
通過使用 Parallel Computing Toolbox™ 在圖形處理單元 (GPU) 上運行來加快代碼執行。

用法說明和限制:

  • 未定義 sum 運算中的加法順序。因此,對 GPU 數組的 sum 運算和對相應 MATLAB 數值數組的 sum 運算所返回的答案可能不完全相同。當 A 是有符號整數類型且其乘積在本機累積時,差異可能相當大。

有關詳細信息,請參閱Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

分布式數組
使用 Parallel Computing Toolbox™ 在群集的組合內存中對大型數組進行分區。

用法說明和限制:

  • 未定義 sum 運算中的加法順序。因此,對分布式數組執行 sum 運算和對相應 MATLAB 數值數組執行 sum 運算所返回的答案可能不完全相同。當 A 是有符號整數類型且其乘積在本機累積時,差異可能相當大。

有關詳細信息,請參閱Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

另請參閱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM