ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構文

  • M = mode(X)
  • M = mode(X,dim)
  • [M,F] = mode(___)
  • [M,F,C] = mode(___)

説明

M = mode(X) は、X のサンプルの最頻値 (すなわち、X の中で最も多い値) を返します。同じ頻度の値が複数ある場合は、mode はそれらの値から最小値を返します。入力が複素数の場合、最小値は並べ替えられたリスト内の最初の値です。

  • X がベクトルの場合、mode(X)X の最頻値を返します。

  • X が空でない行列の場合、mode(X)X の各列の最頻値をもつ行ベクトルを返します。

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

  • X が多次元配列の場合、mode(X) は、最初の大きさが 1 でない次元に沿って機能し、最頻値の配列を返します。この次元のサイズは 1 に縮小しますが、他のすべての次元のサイズは変化しません。

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

[M,F] = mode(___) は前の構文のいずれかの入力引数を使用し、頻度配列 F も返します。F のサイズは M と同じで、F の各要素は対応する M の要素の出現数を表します。

[M,F,C] = mode(___)M および F と同じサイズのセル配列 C も返します。C の各要素は、対応する M の要素と同じ頻度をもつすべての値を並べ替えたベクトルです。

すべて展開する

行列の列の最頻値

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

X = [3 3 1 4; 0 0 1 1; 0 1 2 4]
X =

     3     3     1     4
     0     0     1     1
     0     1     2     4

各列の最頻値を求めます。

M = mode(X)
M =

     0     0     1     4

行列の行の最頻値

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

X = [3 3 1 4; 0 0 1 1; 0 1 2 4]
X =

     3     3     1     4
     0     0     1     1
     0     1     2     4

各行の最頻値を求めます。

M = mode(X,2)
M =

     3
     0
     0

3 次元配列の最頻値

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

X = gallery('integerdata',10,[1,3,4],1)
X(:,:,1) =

    10     8    10


X(:,:,2) =

     6     9     5


X(:,:,3) =

     9     6     1


X(:,:,4) =

     4     9     5

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

M = mode(X)
M(:,:,1) =

    10


M(:,:,2) =

     5


M(:,:,3) =

     1


M(:,:,4) =

     4

この操作は、2 番目の次元に沿って最頻値を求めることによって 1 x 1 x 4 配列を生成します。2 番目の次元のサイズは 1 に縮小します。

X の最初の次元に沿って最頻値を計算します。

M = mode(X,1);
isequal(X,M)
ans =

     1

最初の次元のサイズは 1 なので、この計算は X と同じ配列を返します。

頻度情報を伴う行列の列の最頻値

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

X = [3 3 1 4; 0 0 1 1; 0 1 2 4]
X =

     3     3     1     4
     0     0     1     1
     0     1     2     4

各列の最頻値とその出現回数を求めます。

[M,F] = mode(X)
M =

     0     0     1     4


F =

     2     1     2     2

M(1) は最初の列に 2 回出現するため、F(1)2 です。

頻度情報と重複情報を伴う行列の行の最頻値

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

X = [3 3 1 4; 0 0 1 1; 0 1 2 4]
X =

     3     3     1     4
     0     0     1     1
     0     1     2     4

各行の最頻値、その出現回数および同じ頻度で出現する行内の値を求めます。

[M,F,C] = mode(X,2)
M =

     3
     0
     0


F =

     2
     2
     1


C = 

    [         3]
    [2x1 double]
    [4x1 double]

2 行目では値 01F(2) 回の頻度で出現するため、C{2} は 2 行 1 列のベクトル [0;1] になります。

3 行目ではすべての値が F(3) 回の頻度で出現するため、C{3} は 4 行 1 列のベクトル [0;1;2;4] になります。

16 ビット符号なしの整数配列の最頻値

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

X = gallery('integerdata',10,[1,4],3,'uint16')
X =

      6      3      2      3

最頻値とその出現回数を求めます。

[M,F] = mode(X),
class(M)
M =

      3


F =

     2


ans =

uint16

M は入力 X と同じクラスです。

入力引数

すべて展開する

X - 入力配列ベクトル | 行列 | 多次元配列

入力配列。ベクトル、行列または多次元配列として指定します。

入力配列 XNaN 値は無視されます。

データ型:double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

dim - 動作する対象の次元正の整数スカラー

動作する対象の次元。正の整数のスカラーとして指定します。値が指定されていない場合、既定値はサイズが 1 ではない最初の配列次元です。

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

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

  • dim = 1 の場合、mode(X,1) は、各列の最頻値を含む行ベクトルを返します。

  • dim = 2 の場合、mode(X,2) は、各行の最頻値を含む列ベクトルを返します。

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

データ型:double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて展開する

M - 最頻値スカラー | ベクトル | 行列 | 多次元配列

スカラー、ベクトル、行列または多次元配列として返される最頻値。同じ頻度の値が複数ある場合は、mode はそれらの値から最小値を返します。複素数の入力の場合は、値のリストに蓄積された最初の値をとります。

M のクラスは入力配列 X と同じクラスです。

F - 頻度配列スカラー | ベクトル | 行列 | 多次元配列

スカラー、ベクトル、行列または多次元配列として返される頻度配列。F のサイズは M のサイズと同じで、F の各要素は対応する M の要素の出現数を表します。

F のクラスは常に double です。

C - 重複する最頻値セル配列

セル配列として返される重複する最頻値。C のサイズは M および F のサイズと同じで、C の各要素は、対応する M の要素と同じ頻度をもつすべての値を並べ替えた列ベクトルです。

詳細

すべて展開する

最初の大きさが 1 でない次元

最初の大きさが 1 でない次元 (nonsingleton dimension) は、サイズが 1 に等しくない配列の最初の次元を表します。

たとえば、以下のようになります。

  • X が 1 行 n 列の行ベクトルの場合、2 番目の次元は X の最初の大きさが 1 でない次元になります。

  • X が 1 x 0 x n の空配列の場合、2 番目の次元は X の最初の大きさが 1 でない次元になります。

  • X が 1 x 1 x 3 の配列の場合、3 番目の次元は X の最初の大きさが 1 でない次元になります。

ヒント

  • 関数 mode は、離散データや粗く丸められたデータを扱う場合に、最も役立ちます。連続確率分布の最頻値は、密度関数のピークとして定義されます。関数 mode をそのような分布のサンプルに適用するために、ピークを調べることが良いとは言えません。ヒストグラムを作成するかまたは密度推定を計算し、その推定のピークを計算する方が良いでしょう。また、関数 mode は、複数の最頻値をもつ分布のピークを検出するのに適切ではありません。

参考

| | | |

この情報は役に立ちましたか?