Main Content

nanmean

(非推奨) NaN 値を無視した平均

関数 nanmean は推奨されません。代わりに、MATLAB® 関数 mean を使用してください。関数 mean では、計算に NaN 値を含めるか省略するかを指定できます。詳細は、互換性の考慮事項を参照してください。

説明

y = nanmean(X) は、すべての NaN 値を削除して計算された、X の要素の mean を返します。

  • X がベクトルである場合、nanmean(X)X のすべての非 NaN 要素の平均です。

  • X が行列である場合、nanmean(X)NaN 値を削除して計算された、列平均の行ベクトルです。

  • X が多次元配列である場合、nanmeanX の大きさが 1 でない最初の次元に作用します。この次元のサイズは 1 になりますが、他の次元のサイズはすべて変化しません。nanmean はすべての NaN 値を削除します。

すべてが NaN 値である配列を nanmean が扱う方法については、ヒントを参照してください。

y = nanmean(X,'all') は、NaN 値を削除して計算された、X のすべての要素の平均を返します。

y = nanmean(X,dim) は、NaN 値を削除して計算された、X の作用次元 dim に沿った平均を返します。

y = nanmean(X,vecdim) は、ベクトル vecdim で指定された次元における平均を返します。平均は、NaN 値を削除した後で計算されます。たとえば X が行列である場合、次元 1 および 2 によって定義される配列スライスには行列のそれぞれの要素がすべて含まれるため、nanmean(X,[1 2])X のすべての非 NaN 要素の平均になります。

すべて折りたたむ

欠損値が含まれている行列データの列平均を求めます。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanmean(X)
y = 1×3

    3.5000    3.0000       NaN

欠損値を無視して、配列内のすべての値の平均を求めます。

欠損値が含まれている 2 x 5 x 3 の配列 X を作成します。

X = reshape(1:30,[2 5 3]);
X([10:12 25]) = NaN
X = 
X(:,:,1) =

     1     3     5     7     9
     2     4     6     8   NaN


X(:,:,2) =

   NaN    13    15    17    19
   NaN    14    16    18    20


X(:,:,3) =

    21    23   NaN    27    29
    22    24    26    28    30

X の要素の平均を求めます。

y = nanmean(X,'all')
y = 15.6538

2 番目の次元に沿って平均を計算するよう指定することにより、欠損値が含まれている行列データの行平均を求めます。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanmean(X,2)
y = 3×1

     1
     4
     4

複数の次元における多次元配列の平均を求めます。

欠損値が含まれている 2 x 5 x 3 の配列 X を作成します。

X = reshape(1:30,[2 5 3]);
X([10:12 25]) = NaN
X = 
X(:,:,1) =

     1     3     5     7     9
     2     4     6     8   NaN


X(:,:,2) =

   NaN    13    15    17    19
   NaN    14    16    18    20


X(:,:,3) =

    21    23   NaN    27    29
    22    24    26    28    30

作用次元として 1 番目の次元と 2 番目の次元を指定して、X の各ページの平均を求めます。

ypage = nanmean(X,[1 2])
ypage = 
ypage(:,:,1) =

     5


ypage(:,:,2) =

   16.5000


ypage(:,:,3) =

   25.5556

たとえば、ypage(1,1,1)X(:,:,1) の非 NaN 要素の平均です。

作用次元として 2 番目の次元と 3 番目の次元を指定して、各 X(i,:,:) スライスの要素の平均を求めます。

yrow = nanmean(X,[2 3])
yrow = 2×1

   14.5385
   16.7692

たとえば、yrow(2)X(2,:,:) の非 NaN 要素の平均です。

入力引数

すべて折りたたむ

入力データ。スカラー、ベクトル、行列または多次元配列を指定します。

X が空の配列である場合、nanmean(X)NaN になります。詳細は、ヒントを参照してください。

データ型: single | double

作用する対象となる次元。正の整数スカラーを指定します。値を指定しなかった場合、サイズが 1 ではない最初の配列次元が既定値になります。

dim は、長さを 1 に縮小する次元を指定します。size(y,dim) は 1 ですが、他の次元のサイズはすべて変化しません。

2 次元配列 X について考えます。

  • dim が 1 に等しい場合、nanmean(X,1) は各列の平均が格納されている行ベクトルを返します。

  • dim が 2 に等しい場合、nanmean(X,2) は各行の平均が格納されている列ベクトルを返します。

dimndims(X) より大きい場合、または size(X,dim) が 1 である場合、nanmeanX を返します。

データ型: single | double

次元のベクトル。正の整数ベクトルを指定します。vecdim の各要素は、入力配列 X の次元を表します。出力 y の指定された作用次元における長さは 1 です。他の次元の長さは、Xy で同じになります。

たとえば、X が 2 x 3 x 3 の配列である場合、nanmean(X,[1 2]) は 1 x 1 x 3 の配列を返します。出力の各要素は、X の対応するページにおける要素の平均です。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

データ型: single | double

出力引数

すべて折りたたむ

平均値。スカラー、ベクトル、行列または多次元配列として返されます。

ヒント

  • すべてが NaN 値である配列の平均を nanmean が計算する場合、NaN 値が削除されると配列が空になるので、残りの要素の合計は 0 になります。0 による除算が平均の計算に含まれるので、平均値は NaN になります。出力 NaN は、NaN 値の平均ではありません。

拡張機能

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2020b: nanmean は非推奨

関数 nanmean は推奨されません。代わりに、MATLAB 関数 mean を使用してください。nanmean が削除される予定はありません。

コードを更新するには、関数名 nanmean のインスタンスを mean に変更します。次に、入力引数 nanflag'omitnan' オプションを指定します。

関数 mean には、関数 nanmean と比べて次のような利点があります。

  • mean は、tall 配列、GPU 配列、分散配列、C/C++ コード生成、および GPU コード生成をサポートするための、より拡張された機能を提供します。

  • mean は、指定されたデータ型で出力値を返します。

参考

|