このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
sum
配列要素の和
説明
S = sum(
は、サイズが 1 より大きい最初の配列の次元に沿った A の要素の総和を返します。A
)
A
がベクトルの場合、sum(A)
は要素の和を返します。A
が行列の場合、sum(A)
は各列の和を含む行ベクトルを返します。A
が多次元配列の場合、sum(A)
は、サイズが 1 より大きい最初の配列次元に沿って演算し、要素をベクトルとして扱います。この次元におけるS
のサイズは1
になりますが、他のすべての次元のサイズはA
と同じままです。A
が table または timetable の場合、sum(A)
は、各変数の総和を含む 1 行の table を返します。 (R2023a 以降)
S = sum(___,
は前述の構文の入力引数のいずれかを使って、指定されたデータ型で総和を返します。outtype
)outtype
は "default"
、"double"
または "native"
になります。
例
ベクトル要素の和
行列の列の和
行列を作成し、各列の要素の和を計算します。
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 の 3 次元配列を作成します。
A = ones(4,3,2);
A
の各ページのすべての要素を合計するには、ベクトル次元引数を使用して行と列を合計する次元を指定します。両方のページが 4 行 3 列の 1 の行列であるため、各ページの合計は 12 になります。
S1 = sum(A,[1 2])
S1 = S1(:,:,1) = 12 S1(:,:,2) = 12
A
を最初の次元に沿ってスライスする場合は、それぞれ 3 行 2 列の行列となる結果の 4 ページの要素を合計できます。
S2 = sum(A,[2 3])
S2 = 4×1
6
6
6
6
2 つ目の次元に沿ってスライスすると、各ページの総和は 4 行 2 列の行列を超えます。
S3 = sum(A,[1 3])
S3 = 1×3
8 8 8
配列のすべての次元の総和を計算するには、ベクトルの次元引数で各次元を指定するか、"all"
オプションを使用します。
S4 = sum(A,[1 2 3])
S4 = 24
Sall = sum(A,"all")
Sall = 24
3 次元配列の和
4×2×3 の ones の配列を作成し、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
値を含む行列を作成します。
A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4
1.7700 -0.0050 NaN -2.9500
NaN 0.3400 NaN 0.1900
NaN
値を除外して行列の総和を計算します。NaN
値が含まれている行列の列では、sum
は NaN
以外の要素で計算します。すべて NaN
値の行列の列では、総和は 0 です。
S = sum(A,"omitnan")
S = 1×4
1.7700 0.3350 0 -2.7600
入力引数
A
— 入力配列
ベクトル | 行列 | 多次元配列 | table | timetable
入力配列。ベクトル、行列、多次元配列、table または timetable として指定します。
A
がスカラーの場合、sum(A)
はA
を返します。A
が 0 行 0 列の空の行列である場合、sum(A)
は0
を返します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| duration
| table
| timetable
複素数のサポート: あり
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。
次元 dim
は、長さが 1 に縮小した次元を示します。size(S,dim)
は 1
ですが、他のすべての次元のサイズは変化しません。
2 次元の入力配列 A
について考えます。
sum(A,1)
は、A
の列の連続する要素に対して演算を行い、各列の和の行ベクトルを返します。sum(A,2)
は、A
の行の連続する要素に対して演算を行い、各行の和の列ベクトルを返します。
sum
は、dim
が ndims(A)
より大きいか、size(A,dim)
が 1
である場合に A
を返します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
vecdim
— 次元のベクトル
正の整数のベクトル
次元のベクトル。正の整数のベクトルとして指定します。各要素は入力配列の次元を表します。指定された操作次元の出力の長さは 1 で、その他は同じままです。
2×3×3 の入力配列 A
を考えます。この場合、sum(A,[1 2])
は、要素が A
の各ページの総和となる 1×1×3 の配列を返します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
outtype
— 出力データ型
"default"
(既定値) | "double"
| "native"
出力データ型。"default"
、"double"
または "native"
として指定します。これらのオプションにより、演算の実行に使用されるデータ型も指定されます。
outtype | 出力データ型 |
---|---|
"default" | double 。ただし、入力データ型が single 、duration 、table 、または timetable の場合は出力が "native" になります。 |
"double" | double 。ただし、データ型が duration 、table 、または timetable の場合は、"double" はサポートされません。 |
"native" | 入力と同じデータ型。ただし、入力データ型が char の場合は、"native" はサポートされません。また、入力データ型が timetable の場合は、出力データ型は table です。 |
nanflag
— 欠損値の条件
"includemissing"
(既定値) | "includenan"
| "omitmissing"
| "omitnan"
欠損値の条件。次の値のいずれかとして指定します。
"includemissing"
または"includenan"
— 総和の計算時にA
のNaN
値を含めます。操作次元内のいずれかの要素がNaN
の場合、S
の対応する要素はNaN
です。"includemissing"
と"includenan"
の動作は同じです。"omitmissing"
または"omitnan"
—A
のNaN
値を無視し、点の数を減らして総和を計算します。操作次元内のすべての要素がNaN
の場合、S
の対応する要素は 0 です。"omitmissing"
と"omitnan"
の動作は同じです。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
dim
を指定する場合、定数でなければなりません。outtype
オプションとnanflag
オプションは定数の文字ベクトルでなければなりません。ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
dim
を指定する場合、定数でなければなりません。outtype
オプションとnanflag
オプションは定数の文字ベクトルでなければなりません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
sum
演算の加算順序は定義されません。そのため、GPU 配列のsum
演算は、対応する数値配列のsum
演算と厳密に同じ値を返さないことがあります。A
が符号付き整数型で、その積がそのままに累積される場合、この差が大きくなる場合があります。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
使用上の注意事項および制限事項:
sum
演算の加算の順序は定義されません。そのため、分散配列のsum
演算は、対応する数値配列のsum
演算と厳密に同じ値を返さないことがあります。A
が符号付き整数型で、その積がそのままに累積される場合、この差が大きくなる場合があります。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入R2023a: 欠損値の条件の指定
"includemissing"
オプションまたは "omitmissing"
オプションを使用して、総和の計算時に入力配列の欠損値を含めるか省略します。これらのオプションの動作はそれぞれ、"includenan"
オプションおよび "omitnan"
オプションと同じです。
R2023a: table および timetable で直接計算を実行
関数 sum
は、table または timetable 内のすべての変数に対して、それらの変数にアクセスするためのインデックス付けを行うことなく計算できます。すべての変数のデータ型で計算がサポートされている必要があります。詳細については、table および timetable での直接計算を参照してください。
R2018b: 複数の次元での演算
入力配列の複数の次元を一度に演算します。操作次元のベクトルを指定するか、"all"
オプションを指定してすべての配列次元で演算を行います。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)