このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
movsum
移動合計値
構文
説明
米= movsum(
は局所A
,k
)k
点における合計値の配列を返します。各合計値は、長さk
のスライディング ウィンドウにわたるA
の隣接要素から計算されます。k
が奇数である場合、ウィンドウは現在位置にある要素を中心にして配置されます。k
が偶数である場合、ウィンドウは現在の要素および直前の要素を中心にして配置されます。ウィンドウを埋めるのに十分な数の要素がない場合、ウィンドウ サイズは自動的に端点で打ち切られます。ウィンドウが打ち切られた場合、合計値はウィンドウを埋めている要素のみから取得されます。米
はA
と同じサイズです。
A
がベクトルである場合、movsum
はベクトルの長さに沿って動作します。A
が多次元配列である場合、movsum
は、サイズが 1 に等しくない最初の配列次元に沿って動作します。
米= movsum(___,
は、前述の任意の構文について次元dim
)dim
に沿った移動合計値の配列を返します。たとえば、A
が行列である場合、movsum(A,k,2)
はA
の列に沿って動作し、各行のk
個の要素の移動合計値を計算します。
米= movsum(___,
は、前述の任意の構文についてnanflag
)NaN
値を計算に含めるか省略するかを指定します。movsum(A,k,'includenan')
はすべてのNaN
値を計算に含め、movsum(A,k,'omitnan')
はこれらを無視するため、より少ない点で合計値を計算します。
米= movsum(___,
は、名前と値のペアの引数を 1 つ以上使用して合計値に追加のパラメーターを指定します。たとえば、Name,Value
)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
要素を含むベクトルの移動合計値
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
値を除外して合計値を再計算します。movsum
がNaN
要素を破棄する場合、ウィンドウ内の残りの要素から合計値が取得されます。
米= 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
入力引数
A
—入力配列
ベクトル|行列|多次元配列
入力配列。ベクトル、行列または多次元配列として指定します。
データ型:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|logical
k
—ウィンドウの長さ
数値または duration スカラー
ウィンドウの長さ。数値または duration スカラーとして指定します。k
が正の整数値スカラーである場合、中心合計値には現在位置の要素とその周囲の要素が含まれます。たとえば、長さ 3 のウィンドウで定義される 3 点の合計値では、ベクトルA
に対して次の計算を行います。
データ型:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|duration
[kb kf]
—方向指定ウィンドウの長さ
2 つの要素を含む数値または duration 行ベクトル
方向指定ウィンドウの長さ。2 つの要素を含む数値または duration 行ベクトルとして指定します。kb
とkf
が正の整数値スカラーの場合、計算はkb+kf+1
個の要素に対して行われます。この計算には、現在位置にある要素、その前にあるkb
個の要素、その後にあるkf
個の要素が含まれます。たとえば、方向指定ウィンドウ(2 - 1)
で定義される 4 点の合計値では、ベクトルA
に対して次の計算を行います。
データ型:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|duration
dim
—演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。
次元dim
はmovsum
が沿って動作する次元、つまり指定されたウィンドウがスライドする方向を示します。
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
nanflag
—NaN
の条件
'includenan'
(既定値) |'omitnan'
NaN
の条件。次の値のいずれかとして指定します。
'includenan'
— 和の計算にNaN
値を含めます。結果はNaN
になります。'omitnan'
——入力にあるすべてのNaN
値を無視します。ウィンドウにNaN
値しか含まれていない場合、movsum
は 0 を返します。
名前と値の引数
例:米= movsum(A,k,'Endpoints','fill')
オプションのName,Value
の引数ペアをコンマ区切りで指定します。Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペアの引数を任意の順序で指定できます。
Endpoints
—先頭および末尾のウィンドウを処理する方法
'shrink'
(既定値) |'discard'
|'fill'
|数値または論理スカラー
先頭および末尾のウィンドウを処理する方法。'Endpoints'
と次のいずれかで構成されるコンマ区切りのペアとして指定します。
'Endpoints' 値 |
説明 |
---|---|
'shrink' |
入力の端点付近のウィンドウのサイズを縮小し、既存の要素のみを含めます。 |
'discard' |
既存な要素とウィンドウが完全にオーバーラップしない場合、合計値を出力しません。 |
'fill' |
存在しない要素をNaN に置き換えます。 |
数値または論理スカラー | 存在しない要素を指定した数値または論理値に置き換えます。 |
データ型:double
|single
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|logical
|char
|string
SamplePoints
—合計値を計算するためのサンプル点
ベクトル
合計値を計算するためのサンプル点。'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
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C++ コード生成
米ATLAB® Coder™ を使用して C および C++ コードを生成します。
この関数は C/C++ コード生成をサポートしていますが、次のような制限があります。
コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
米ATLAB®backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ のThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、Run MATLAB Functions in Thread-Based Environmentを参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
'SamplePoints'
の名前と値のペアはサポートされていません。
詳細については、GPU での MATLAB 関数の実行(Parallel Computing Toolbox)を参照してください。
バージョン履歴
米ATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)