米ain Content

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

movsum

説明

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

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

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

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

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

米= movsum(___,nanflag)は、前述の任意の構文についてNaN値を計算に含めるか省略するかを指定します。movsum(A,k,'includenan')はすべてのNaN値を計算に含め、movsum(A,k,'omitnan')はこれらを無視するため、より少ない点で合計値を計算します。

米= movsum(___,Name,Value)は、名前と値のペアの引数を 1 つ以上使用して合計値に追加のパラメーターを指定します。たとえば、xが時間ベクトルである場合、movsum(A,k,'SamplePoints',x)xを基準としてAの移動合計値を計算します。

すべて折りたたむ

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

A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,3)
米=1×1012 18 13 3 -6 -6 -1 6 12 9

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

A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,[2 0])
米=1×104 12 18 13 3 -6 -6 -1 6 12

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

A = [4 8 6; -1 -2 -3; -1 3 4]
A =3×34 8 6 -1 -2 -3 -1 3 4
米= movsum(A,3,2)
米=3×312 18 14 -3 -6 -5 2 6 7

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

A = [4 8 NaN -1 -2 -3 NaN 3 4 5]; M = movsum(A,3)
米=1×1012 NaN NaN NaN -6 NaN NaN NaN 12 9

NaN値を除外して合計値を再計算します。movsumNaN要素を破棄する場合、ウィンドウ内の残りの要素から合計値が取得されます。

米= movsum(A,3,'omitnan')
米=1×1012 12 7 -3 -6 -5 0 7 12 9

時間ベクトルtに従って、Aのデータの 3 時間中心移動合計値を計算します。

A = [4 8 6 -1 -2 -3]; k = hours(3); t = datetime(16,1,1,0,0,0) + hours(0:5)
t =1x6 datetimeColumns 1 through 3 01-Jan-0016 00:00:00 01-Jan-0016 01:00:00 01-Jan-0016 02:00:00 Columns 4 through 6 01-Jan-0016 03:00:00 01-Jan-0016 04:00:00 01-Jan-0016 05:00:00
米= movsum(A,k,'SamplePoints',t)
米=1×612 18 13 3 -6 -5

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

A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,3,'Endpoints','discard')
米=1×818 13 3 -6 -6 -1 6 12

入力引数

すべて折りたたむ

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

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

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

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

方向指定ウィンドウの長さ。2 つの要素を含む数値または duration 行ベクトルとして指定します。kbkfが正の整数値スカラーの場合、計算はkb+kf+1個の要素に対して行われます。この計算には、現在位置にある要素、その前にあるkb個の要素、その後にあるkf個の要素が含まれます。たとえば、方向指定ウィンドウ(2 - 1)で定義される 4 点の合計値では、ベクトルAに対して次の計算を行います。

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

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

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

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

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

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

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

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

  • 'includenan'— 和の計算にNaN値を含めます。結果はNaNになります。

  • 'omitnan'——入力にあるすべてのNaN値を無視します。ウィンドウにNaN値しか含まれていない場合、movsumは 0 を返します。

名前と値の引数

例:米= movsum(A,k,'Endpoints','fill')

オプションのName,Valueの引数ペアをコンマ区切りで指定します。Nameは引数名で、Valueは対応する値です。Nameは引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueNのように、複数の名前と値のペアの引数を任意の順序で指定できます。

先頭および末尾のウィンドウを処理する方法。'Endpoints'と次のいずれかで構成されるコンマ区切りのペアとして指定します。

'Endpoints' 説明
'shrink' 入力の端点付近のウィンドウのサイズを縮小し、既存の要素のみを含めます。
'discard' 既存な要素とウィンドウが完全にオーバーラップしない場合、合計値を出力しません。
'fill' 存在しない要素をNaNに置き換えます。
数値または論理スカラー 存在しない要素を指定した数値または論理値に置き換えます。

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

合計値を計算するためのサンプル点。'SamplePoints'とベクトルとで構成されるコンマ区切りのペアで指定します。サンプル点はAのデータの位置を表します。サンプル点は等間隔でサンプリングされている必要はありません。既定では、サンプル点ベクトルは[1 2 3 ... ]です。

移動ウィンドウはサンプル点を基準として定義されます。サンプル点は並べ替えられていなければならず、また一意の要素を含んでいなければなりません。たとえば、tが入力データに対応する時間のベクトルである場合、movsum(rand(1,10),3,'SamplePoints',t)にはt(i)-1.5からt(i)+1.5までの時間間隔を表すウィンドウがあります。

サンプル点ベクトルのデータ型がdatetimeまたはdurationである場合、移動ウィンドウの長さの型はdurationでなければなりません。

サンプル点の間隔が不均一で、'Endpoints'の名前と値のペアを指定する場合、値は'shrink'でなければなりません。

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

拡張機能

バージョン履歴

R2016a で導入