ドキュメンテーション

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

movstd

構文

M = movstd(A,k)
M = movstd(A,[kb kf])
M = movstd(___,w)
M = movstd(___,w,dim)
M = movstd(___,nanflag)
M = movstd(___,Name,Value)

説明

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

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

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

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

M = movstd(___,w) は、前述の任意の構文について正規化係数を指定します。w = 0 (既定値) の場合、M はウィンドウの長さが k のときに k-1 で正規化されます。w = 1 の場合、Mk で正規化されます。

M = movstd(___,w,dim) は、前述の任意の構文について次元 dim に沿った移動標準偏差の配列を返します。dim を指定する場合は、常に前述の構文の重み w を指定します。たとえば、movstd(A,k,0,2) は行列 A の列に沿って動作し、各行の k 個の要素の移動標準偏差を計算します。正規化係数は既定値 k-1 です。

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

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

すべて折りたたむ

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

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

    2.8284    2.0000    4.7258    4.3589    1.0000    1.0000    3.0551    2.6458    1.0000    0.7071

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

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

         0    2.8284    2.0000    4.7258    4.3589    1.0000    1.0000    3.0551    2.6458    1.0000

行ベクトルの 3 点の中心移動標準偏差値を計算し、個々の標準偏差値をウィンドウ内の要素数で正規化します。

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

    2.0000    1.6330    3.8586    3.5590    0.8165    0.8165    2.4944    2.1602    0.8165    0.5000

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

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

    2.8284    2.0000    1.4142
    0.7071    1.0000    0.7071
    2.8284    2.6458    0.7071

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

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

    2.8284       NaN       NaN       NaN    1.0000       NaN       NaN       NaN    1.0000    0.7071

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

M = movstd(A,3,'omitnan')
M = 1×10

    2.8284    2.8284    6.3640    0.7071    1.0000    0.7071    4.2426    0.7071    1.0000    0.7071

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

A = [4 8 6 -1 -2 -3];
k = hours(3);
t = datetime(2016,1,1,0,0,0) + hours(0:5)
t = 1x6 datetime array
Columns 1 through 3

   01-Jan-2016 00:00:00   01-Jan-2016 01:00:00   01-Jan-2016 02:00:00

Columns 4 through 6

   01-Jan-2016 03:00:00   01-Jan-2016 04:00:00   01-Jan-2016 05:00:00

M = movstd(A,k,'SamplePoints',t)
M = 1×6

    2.8284    2.0000    4.7258    4.3589    1.0000    0.7071

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

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

    2.0000    4.7258    4.3589    1.0000    1.0000    3.0551    2.6458    1.0000

入力引数

すべて折りたたむ

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

データ型: single | double | 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

重み。次のいずれかの値に指定します。

  • 0k-1 で正規化されます (k はウィンドウの長さ)。k=1 の場合、重みは k です。

  • 1k で正規化されます。

データ型: single | double

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

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

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

  • dim = 1 の場合、movstd(A,k,0,1) は 1 列目から始めて各行の縦方向にスライドします。標準偏差は同時に k 個の要素から取得されます。次に 2 列目に移動して、計算を繰り返します。この処理はすべての列が計算されるまで続行します。引数 0 は既定の重みを指定します。これは dim を指定するときに必須です。

  • dim = 2 の場合、movstd(A,k,0,2) は 1 行目から始めて各列の横方向にスライドします。標準偏差は同時に k 個の要素から取得されます。次に 2 行目に移動し、計算を繰り返します。この処理はすべての行が計算されるまで続行します。引数 0 は既定の重みを指定します。これは dim を指定するときに必須です。

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

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

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

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

名前と値のペアの引数

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

例: M = movstd(A,k,'Endpoints','fill')

先頭および末尾のウィンドウを処理する方法。'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 が入力データに対応する時間のベクトルである場合、movstd(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

詳細

すべて折りたたむ

標準偏差

N 個のスカラーの観測値からなる確率変数ベクトル A の場合、標準偏差は次のように定義されます。

S=1N1i=1N|Aiμ|2,

ここで μ は、A の平均値です。

μ=1Ni=1NAi.

標準偏差は、分散の平方根です。標準偏差の一部の定義では、N-1 の代わりに N の正規化係数が使用されます。これは、w1 に設定することで指定できます。

拡張機能

R2016a で導入