mean
配列の平均値
構文
説明
M = mean(
は、サイズが 1 より大きい最初の配列の次元に沿った A
)A
の要素の平均値を返します。
A
がベクトルの場合、mean(A)
は要素の平均値を返します。A
が行列の場合、mean(A)
は各列の平均値を含む行ベクトルを返します。A
が多次元配列の場合、mean(A)
は、サイズが 1 より大きい最初の配列次元に沿って演算し、要素をベクトルとして扱います。この次元におけるM
のサイズは1
になりますが、他のすべての次元のサイズはA
と同じままです。A
が table または timetable の場合、mean(A)
は、各変数の平均値を含む 1 行の table を返します。 (R2023a 以降)
M = mean(___,
は前述の構文のいずれかで指定されたデータ型の平均値を返します。outtype
)outtype
は "default"
、"double"
または "native"
になります。
M = mean(___,
は、missingflag
)A
の欠損値を含めるか省略するかを指定します。たとえば、mean(A,"omitmissing")
は平均値の計算時にすべての欠損値を無視します。既定では、mean
は欠損値を含めます。
例
行列の列の平均値
行列を作成して各列の平均値を計算します。
A = [0 1 1; 2 3 2; 1 3 2; 4 2 2]
A = 4×3
0 1 1
2 3 2
1 3 2
4 2 2
M = mean(A)
M = 1×3
1.7500 2.2500 1.7500
行列の行の平均値
行列を作成して各行の平均値を計算します。
A = [0 1 1; 2 3 2; 3 0 1; 1 2 3]
A = 4×3
0 1 1
2 3 2
3 0 1
1 2 3
M = mean(A,2)
M = 4×1
0.6667
2.3333
1.3333
2.0000
3 次元配列の平均値
1 ~ 10 の整数値の 4×2×3 の配列を作成し、2 番目の次元に沿って平均値を計算します。
rng('default')
A = randi(10,[4,2,3]);
M = mean(A,2)
M = M(:,:,1) = 8.0000 5.5000 2.5000 8.0000 M(:,:,2) = 10.0000 7.5000 5.5000 6.0000 M(:,:,3) = 6.0000 5.5000 8.5000 10.0000
配列ページの平均値
3 次元配列を作成し、データの各ページ (行と列) ごとの平均値を計算します。
A(:,:,1) = [2 4; -2 1]; A(:,:,2) = [9 13; -5 7]; A(:,:,3) = [4 4; 8 -3]; M1 = mean(A,[1 2])
M1 = M1(:,:,1) = 1.2500 M1(:,:,2) = 6 M1(:,:,3) = 3.2500
配列のすべての次元の平均値を計算するには、ベクトルの次元引数で各次元を指定するか、"all"
オプションを使用します。
M2 = mean(A,[1 2 3])
M2 = 3.5000
Mall = mean(A,"all")
Mall = 3.5000
単精度配列の平均値
1 の単精度ベクトルを作成し、その単精度平均値を計算します。
A = single(ones(10,1));
M = mean(A,"native")
M = single
1
結果も単精度になります。
class(M)
ans = 'single'
欠損値を除外した平均値
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
値が含まれている行列の列では、mean
は NaN
以外の要素で計算します。すべて NaN
値の行列の列では、平均値は NaN
です。
M = mean(A,"omitnan")
M = 1×4
1.7700 0.1675 NaN -1.3800
加重平均
R2024a 以降
行列を作成し、W
で指定される重み付けスキームに従って行列の加重平均を計算します。関数 mean
は、A
の各列に重み付けスキームを適用します。
A = [1 1; 7 9; 1 9; 1 9; 6 2]; W = [1 2 1 2 3]'; M = mean(A,Weights=W)
M = 1×2
4.0000 5.7778
入力引数
A
— 入力データ
ベクトル | 行列 | 多次元配列 | table | timetable
入力データ。ベクトル、行列、多次元配列、table または timetable として指定します。
A
がスカラーの場合、mean(A)
はA
を返します。A
が 0 行 0 列の空の行列である場合、mean(A)
はNaN
を返します。
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。
次元 dim
は、長さが 1
に縮小した次元を示します。size(M,dim)
は 1
ですが、他のすべての次元のサイズは変化しません。
m
行 n
列の入力行列 A
を考えます。
mean(A,1)
は、A
の各列における要素の平均値を計算し、1
行n
列の行ベクトルを返します。mean(A,2)
は、A
の各行における要素の平均値を計算し、m
行1
列の列ベクトルを返します。
mean
は、dim
が ndims(A)
より大きいか、size(A,dim)
が 1
である場合に A
を返します。
vecdim
— 次元のベクトル
正の整数のベクトル
次元のベクトル。正の整数のベクトルとして指定します。各要素は入力データの次元を表します。指定された操作次元の出力の長さは 1 で、その他は同じままです。
2×3×3 の入力データ A
を考えます。mean(A,[1 2])
は 1×1×3 の配列を返します。この配列の要素は、A
の各ページの平均値です。
outtype
— 出力データ型
"default"
(既定値) | "double"
| "native"
出力データ型。次の表の値のいずれかとして指定します。これらのオプションにより、演算の実行に使用されるデータ型も指定されます。
outtype | 出力データ型 |
---|---|
"default" | double 。ただし、入力データ型が single 、duration 、datetime 、table 、または timetable の場合は出力が "native" になります。 |
"double" | double 。ただし、データ入力型が duration 、datetime 、table 、または timetable の場合、"double" はサポートされません。 |
"native" | 次の場合を除き、入力と同じデータ型です。
|
missingflag
— 欠損値の条件
"includemissing"
(既定値) | "includenan"
| "includenat"
| "omitmissing"
| "omitnan"
| "omitnat"
欠損値の条件。次の表の値のいずれかとして指定します。
値 | 入力データ型 | 説明 |
---|---|---|
"includemissing" | サポートされているすべてのデータ型 | 平均値の計算時に |
"includenan" | double , single , duration | |
"includenat" | datetime | |
"omitmissing" | サポートされているすべてのデータ型 | A の欠損値を無視し、点の数を減らして平均値を計算します。操作次元のすべての要素がない場合、M の対応する要素がありません。 |
"omitnan" | double , single , duration | |
"omitnat" | datetime |
W
— 重み付けスキーム
ベクトル | 行列 | 多次元配列
R2024a 以降
重み付けスキーム。ベクトル、行列、または多次元配列として指定します。W
の要素は非負でなければなりません。
重み付けスキームを指定すると、mean
は加重平均を返します。これは、入力データの値の重要度がそれぞれ異なる場合や入力データに歪みがある場合に便利です。
W
がベクトルの場合、操作次元と同じ長さでなければなりません。それ以外の場合、W
は入力データと同じサイズでなければなりません。
入力データ A
が table または timetable の場合、W
はベクトルでなければなりません。
この引数は、vecdim
または "all"
を指定する場合は指定できません。
データ型: double
| single
詳細
平均
N 個のスカラーの観測値からなる有限長ベクトル A の平均は、次のように定義されます。
加重平均
N 個のスカラーの観測値からなる有限長ベクトル A と重み付けスキーム W に対し、加重平均は次のように定義されます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
dim
を指定する場合、定数でなければなりません。重み付けスキームの指定はサポートされていません。
outtype
オプションとmissingflag
オプションは定数の文字ベクトルまたは string でなければなりません。整数型は
"native"
出力データ型オプションをサポートしません。名前と値の引数
Weights
はサポートされていません。ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
dim
を指定する場合、定数でなければなりません。outtype
オプションとmissingflag
オプションは定数の文字ベクトルまたは string でなければなりません。整数型は
"native"
出力データ型オプションをサポートしません。名前と値の引数
Weights
はサポートされていません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
関数 mean
は GPU 配列を部分的にサポートしています。この関数の一部の構文は、入力データを gpuArray
(Parallel Computing Toolbox) として指定すると、GPU で実行されます。使用上の注意事項および制限事項:
"native"
オプションはサポートされていません。名前と値の引数
Weights
はサポートされていません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
使用上の注意事項および制限事項:
"native"
オプションはサポートされていません。名前と値の引数
Weights
はサポートされていません。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入R2024a: 加重平均の計算
Weights
パラメーターを重み付けスキームとして指定して加重平均を計算します。
R2023a: table および timetable で直接計算を実行
関数 mean
は、table または timetable 内のすべての変数に対して、それらの変数にアクセスするためのインデックス付けを行うことなく計算できます。すべての変数のデータ型で計算がサポートされている必要があります。詳細については、table および timetable での直接計算を参照してください。
R2023a: 欠損値の条件の指定
"includemissing"
オプションまたは "omitmissing"
オプションを使用して、平均値の計算時に入力データのすべての欠損値を含めるか省略します。以前は、"includenan"
、"omitnan"
、"includenat"
、および "omitnat"
により、入力データのデータ型に固有の欠損値条件を指定していました。
R2023a: グループ サイズが小さい場合のパフォーマンスが向上
関数 mean
で、操作次元が指定されていないときに実数ベクトルに対して計算する際のパフォーマンスが向上しています。この関数での既定の操作次元の判別が、R2023a では R2022b より高速化しています。
たとえば、以下のコードでは、既定のベクトル次元に沿って平均を計算します。このコードは、以前のリリースよりパフォーマンスが約 2.2 倍高速化しました。
function timingMean A = rand(10,1); for i = 1:8e5 mean(A); end end
おおよその実行時間は以下のとおりです。
R2022b: 0.91 秒
R2023a: 0.41 秒
このコードの時間測定では、Windows® 10、Intel® Xeon® CPU E5-1650 v4 (3.60 GHz) 搭載のテスト システムで、関数 timeit
を使用しました。
timeit(@timingMean)
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)