ドキュメンテーション

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

構文

M = movmax(A,k)
M = movmax(A,[kb kf])
M = movmax(___,dim)
M = movmax(___,nanflag)
M = movmax(___,'Endpoints',endptmethod)

説明

M = movmax(A,k) は、局所 k 点における最大値の配列を返します。各最大値は、長さ k のスライディング ウィンドウにわたる A の隣接要素から計算されます。k が奇数である場合、ウィンドウは現在位置にある要素を中心にして配置されます。k が偶数である場合、ウィンドウは現在の要素および直前の要素を中心にして配置されます。ウィンドウを埋めるのに十分な数の要素がない場合、ウィンドウ サイズは自動的に端点で打ち切られます。ウィンドウが打ち切られた場合、最大値はウィンドウを埋めている要素のみから取得されます。MA と同じサイズです。

  • A がベクトルである場合、movmax はベクトルの長さに沿って動作します。

  • A が多次元配列である場合、movmax は、サイズが 1 に等しくない最初の配列次元に沿って動作します。

M = movmax(A,[kb kf]) は、長さが kb+kf+1 のウィンドウにおける最大値を計算します。このウィンドウには現在位置の要素、kb 個前までの要素および kf 個後までの要素が含まれます。

M = movmax(___,dim) は、前述の任意の構文について次元 dim に沿った移動最大値の配列を返します。たとえば、A が行列である場合、movmax(A,k,2)A の列に沿って動作し、各行の k 個の要素の移動最大値を計算します。

M = movmax(___,nanflag) は、前述の任意の構文について NaN 値を計算に含めるか除外するかを指定します。movmax(A,k,'includenan') は、すべての NaN 値を計算に含め、movmax(A,k,'omitnan') はそれらを無視して、より少ない点で最大値を計算します。

M = movmax(___,'Endpoints',endptmethod) は、'Endpoints' と、'shrink''discard''fill' のいずれか、またはスカラー値あるいは論理値を使用して端点の処理方法を指定します。たとえば、movmax(A,k,'Endpoints','discard') は、A の厳密に k 個の各要素で計算された最大値のみを出力し、要素数が削減された端点の計算を破棄します。

すべて折りたたむ

行ベクトルの 3 点の中心移動最大値を計算します。端点でウィンドウ内の要素数が 3 より少ない場合、使用可能な要素の最大値を取得します。

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,3)
M =

     8     8     8     6    -1    -1     3     4     5     5

行ベクトルの 3 点の末尾移動最大値を計算します。端点でウィンドウ内の要素数が 3 より少ない場合、movmax は使用可能な要素の最大値を取得します。

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,[2 0])
M =

     4     8     8     8     6    -1    -1     3     4     5

行列の各行に対して 3 点の中心移動最大値を計算します。ウィンドウは最初の行で始まり、行の終わりまで横方向にスライドし、それから 2 行目に移動して同様に繰り返します。次元引数は 2 であるため、ウィンドウは A の列を横断する方向にスライドします。

A = [4 8 6; -1 -2 -3; -1 3 4]
A =

     4     8     6
    -1    -2    -3
    -1     3     4

M = movmax(A,3,2)
M =

     8     8     8
    -1    -1    -2
     3     4     4

NaN 要素を 2 つ含む行ベクトルの 3 点の中心移動最大値を計算します。

A = [4 8 NaN -1 -2 -3 NaN 3 4 5];
M = movmax(A,3)
M =

     8     8     8    -1    -1    -2     3     4     5     5

NaN 値を含めて最大値を再計算します。NaN 値を 1 つ以上含む要素のグループから最大値を取得する場合、movmaxNaN を返します。

M = movmax(A,3,'includenan')
M =

     8   NaN   NaN   NaN    -1   NaN   NaN   NaN     5     5

行ベクトルの 3 点の中心移動最大値を計算しますが、使用する要素が 3 点より少ない計算を出力から破棄します。言い換えれば、3 要素をすべて含むウィンドウから計算された最大値のみを返し、端点での計算を破棄します。

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,3,'Endpoints','discard')
M =

     8     8     6    -1    -1     3     4     5

入力引数

すべて折りたたむ

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

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

ウィンドウの長さ。正の整数スカラーとして指定します。中心最大値には現在位置の要素とその周囲の要素が含まれます。たとえば、長さ 3 のウィンドウで定義される 3 点の最大値では、ベクトル A に対して次の計算を行います。

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

方向指定ウィンドウの長さ。2 つの正の整数スカラーからなる行ベクトルとして指定します。計算には現在位置にある要素、現在位置の前にある kb 個の要素、現在位置の後にある kf 個の要素が含まれます。たとえば、方向指定ウィンドウ [2 1] で定義される 4 点の最大値では、ベクトル A に対して次の計算を行います。

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

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

次元 dimmovmax が沿って動作する次元、つまり指定されたウィンドウがスライドする方向を示します。

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

  • dim = 1 の場合、movmax(A,k,1) は 1 列目から始めて各行の縦方向にスライドし、k 個の要素の最大値を同時に計算します。次に 2 列目に移動して、計算を繰り返します。この処理はすべての列が計算されるまで続行します。

  • dim = 2 の場合、movmax(A,k,2) は 1 行目から始めて各列の横方向にスライドし、k 個の要素の最大値を同時に計算します。次に 2 行目に移動し、計算を繰り返します。この処理はすべての行が計算されるまで続行します。

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

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

  • 'omitnan' — 入力にあるすべての NaN 値を無視します。

  • 'includenan' — 最大値を計算する場合、入力に NaN 値を含めるため、NaN が出力されます。

データ型: char

端点の計算方法。次のいずれかとして指定します。

endptmethod の値説明
'shrink'端点付近でウィンドウ サイズを小さくして、使用可能な要素のみを含めます。
'discard'使用可能な要素とウィンドウが完全にオーバーラップしない場合、最大値を出力しません。
'fill'不足している要素を -Inf で埋めます。
スカラーまたは論理値不足している要素を指定されたスカラーまたは論理値で埋めます。

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

参考

| | |

R2016a で導入

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