Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

median

説明

M = median(A) は、A の中央値を返します。

  • A がベクトルの場合、median(A)A の中央値を返します。

  • A が空でない行列の場合、median(A)A の列をベクトルとして取り扱い、中央値の行ベクトルを返します。

  • A が空の 0 行 0 列の場合、median(A)NaN を返します。

  • A が多次元配列の場合、median(A) はサイズが 1 でない最初の配列次元に沿った値をベクトルとして扱います。この次元のサイズは 1 になりますが、他のすべての次元のサイズは変化しません。

median は、Aclass(M) = class(A) などの数値クラスでネイティブに計算します。

M = median(A,'all') は、A のすべての要素の中央値を計算します。この構文は、MATLAB® R2018b 以降で有効です。

M = median(A,dim) は、次元 dim に沿って要素の中央値を返します。たとえば、A が行列の場合、median(A,2) は各行の中央値をもつ列ベクトルになります。

M = median(A,vecdim) は、ベクトル vecdim で指定した次元に基づいて中央値を計算します。たとえば、A が行列の場合、median(A,[1 2]) は、A 内のすべての要素の中央値になります。これは、行列のすべての要素が次元 1 と 2 で定義された配列スライスに含まれるためです。

M = median(___,nanflag) は、前述のすべての構文で中央値の計算に NaN 値を含めるか省略するかをオプションで指定します。たとえば、median(A,'omitnan')A のすべての NaN 値を無視します。

すべて折りたたむ

4 行 3 列の行列を定義します。

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 = median(A)
M = 1×3

    1.5000    2.5000    2.0000

各列では、中央値は並べ替え順序になっている中間の 2 つの数値の平均です。

2 行 3 列の行列を定義します。

A = [0 1 1; 2 3 2]
A = 2×3

     0     1     1
     2     3     2

各行の中央値を求めます。

M = median(A,2)
M = 2×1

     1
     2

各行では、中央値は並べ替え順序になっている中間の数値です。

110 の間の整数の 1 x 3 x 4 の配列を作成します。

rng('default')
A = randi(10,[1,3,4])
A = 
A(:,:,1) =

     9    10     2


A(:,:,2) =

    10     7     1


A(:,:,3) =

     3     6    10


A(:,:,4) =

    10     2    10

2 番目の次元に沿って 3 次元配列の中央値を求めます。

M = median(A)
M = 
M(:,:,1) =

     9


M(:,:,2) =

     7


M(:,:,3) =

     6


M(:,:,4) =

    10

この演算は、2 番目の次元に沿って 3 つの値の中央値を計算することによって 1 x 1 x 4 の配列を生成します。2 番目の次元のサイズは 1 に縮小されます。

A の最初の次元に沿って中央値を計算します。

M = median(A,1);
isequal(A,M)
ans = logical
   1

最初の次元のサイズは 1 なので、このコマンドは A と同じ配列を返します。

3 次元配列を作成し、データの各ページ (行と列) の中央値を計算します。

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [6 2; -5 3];
A(:,:,3) = [4 4; 7 -3];
M1 = median(A,[1 2])
M1 = 
M1(:,:,1) =

    1.5000


M1(:,:,2) =

    2.5000


M1(:,:,3) =

     4

R2018b 以降、配列のすべての次元の中央値を計算するには、ベクトルの次元引数で各次元を指定するか、'all' オプションを使用します。

M2 = median(A,[1 2 3])
M2 = 2.5000
Mall = median(A,'all')
Mall = 2.5000

8 ビット整数の 1 行 4 列のベクトルを定義します。

A = int8(1:4)
A = 1x4 int8 row vector

   1   2   3   4

中央値を計算します。

M = median(A),
M = int8
    3
class(M)
ans = 
'int8'

M は、8 ビット整数として返された、並べ替え順序になっている中間の 2 つの数値の平均です。

ベクトルを作成し、NaN 値を除いてその中央値を計算します。

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = median(A,'omitnan')
M = 0.2650

入力引数

すべて折りたたむ

入力配列。ベクトル、行列または多次元配列として指定します。A には数値配列、順序 categorical 配列、datetime 配列または duration 配列を使用できます。

演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。

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

mn 列の入力行列 A を考えます。

  • median(A,1) は、A の各列における要素の中央値を計算し、1n 列の行ベクトルを返します。

    median(A,1) column-wise operation

  • median(A,2) は、A の各行における要素の中央値を計算し、m1 列の列ベクトルを返します。

    median(A,2) row-wise operation

dimndims(A) より大きい場合、medianA を返します。

次元のベクトル。正の整数のベクトルとして指定します。各要素は入力配列の次元を表します。指定された操作次元の出力の長さは 1 で、その他は同じままです。

2 x 3 x 3 の入力配列 A を考えます。この場合、median(A,[1 2]) は 1 x 1 x 3 の配列を返します。この配列の要素は A の各ページの中央値です。

Mapping of a 2-by-3-by-3 input array to a 1-by-1-by-3 output array

NaN の条件。次の値のいずれかとして指定します。

  • 'includenan'NaN 値を含む入力の中央値は NaN です。

  • 'omitnan' — 入力にあるすべての NaN 値が無視されます。メモ: NaN フラグは 0 に設定されません。

また、一部のデータ型については追加の値を指定することもできます。

  • 'includeundefined' および 'omitundefined'categorical 入力

  • 'includenat' および 'omitnat'datetime 入力

アルゴリズム

順序 categorical 配列の場合は、MATLAB は偶数個の要素の中央値を次のように解釈します。

2 つの中間の値の間にあるカテゴリの数 ...中央値 ...
ゼロ (連続カテゴリの値)2 つの中間値のうち大きい方
奇数2 つの中間値の間に発生するカテゴリの値
偶数2 つの中間値の間に発生する 2 つのカテゴリのうち大きい方の値

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | | | | | |