主要内容

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

smoothdata

ノイズの多いデータの平滑化

説明

B= smoothdata (一个は,経験則的に決定された固定ウィンドウの長さを使用して,ベクトルの要素の移動平均を返します。ウィンドウはベクトルの長さだけ下にスライドし,各ウィンドウ内の要素の平均を計算します。

  • 一个が行列の場合,smoothdataは各列の移動平均を計算します。

  • 一个が多次元配列の場合,smoothdataは,サイズが1に等しくない最初の次元に沿って処理します。

  • 一个が数値変数をも表まつたは时间表の場合,smoothdataは各変数で別々に動作します。

B= smoothdata (一个昏暗的は,一个の次元昏暗的に沿って処理します。たとえば,一个が行列の場合,smoothdata (2)一个の各行のデータを平滑化します。

B= smoothdata (___方法は前述の構文のいずれかの平滑化法を指定します。たとえば,B = smoothdata (A,“sgolay”)の場合,Savitzky-Golayフィルターを使用して一个のデータを平滑化します。

B= smoothdata (___方法窗口は,平滑化法で使用するウィンドウの長さを指定します。たとえば,smoothdata(“movmedian”,5)の場合,要素が5つあるスライディングウィンドウの中央値を取得して,一个のデータを平滑化します。

B= smoothdata (___nanflagは,前述の任意の構文について値をどのように処理するかを指定します。各ウィンドウ内での計算時に,“omitnan”値を無視し,“includenan”は計算に含めます。

B= smoothdata (___名称,值は,名前と値のペアの引数を1つ以上使用して,平滑化に関する追加のパラメーターを指定します。たとえば,tが時間値のベクトルである場合,smoothdata(“SamplePoints”,t)tの時間を基準にして一个のデータを平滑化します。

B窗口) = smoothdata (___は移動ウィンドウの長さも返します。

すべて折りたたむ

ノイズの多いデータを含むベクトルを作成し,移動平均を使用してデータを平滑化します。元のデータと平滑化後のデータをプロットします。

x = 1:10 0;= cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.5 * randn (1100);B = smoothdata(一个);情节(x,,“o”, x、B“- x”)传说(“原始数据”“平滑数据”

ノイズの多い3つの信号を表す行をもつ行列を作成します。移動平均を使用して3つの信号を平滑化し,平滑化後のデータをプロットします。

x = 1:10 0;s1 = cos(2 * 0.03π* * x + 2 *π*兰德)+ 0.5 * randn (1100);s2 = cos(2 * 0.04π* * x + 2 *π*兰德)+ 0.4 * randn (1100) + 5;s3 = cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.3 * randn - 5 (1100);= (s1);s2;s3);B = smoothdata (2);情节(x, B (1:), x, B (2:), x, B (3,:))

ガウス加重移動平均フィルターを使用して,ノイズの多いデータのベクトルを平滑化します。フィルターで使用したウィンドウの長さを表示します。

x = 1:10 0;= cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.5 * randn (1100);[B, window] = smoothdata(A,“高斯”);窗口
窗口= 4

長さ20の大きいウィンドウを使用して元のデータを平滑化します。両方のウィンドウの長さについて,平滑化後のデータをプロットします。

C = smoothdata (,“高斯”, 20);情节(x, B,“o”, x, C,“- x”)传说(“小窗”“大窗口”

値を含むノイズの多いベクトルを作成し,を無視してデータを平滑化します。これは既定の設定です。

A = [NaN randn(1,48) NaN randn(1,49) NaN];B = smoothdata(一个);

値を含むデータを平滑化します。を含むウィンドウでの平均値はです。

C = smoothdata (,“includenan”);

BCの平滑化後のデータをプロットします。

情节(1:10 0 B“o”1:10 0 C“- x”)传说(“忽视南”“包括南”

時間ベクトルtに対応するノイズの多いデータのベクトルを作成します。tの時間を基準としてデータを平滑化し,元のデータと平滑化後のデータをプロットします。

x = 1:10 0;= cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.5 * randn (1100);T = datetime(2017,1,1,0,0,0) + hours(0:99);B = smoothdata (A,“SamplePoints”t);情节(t),“o”t、B“- x”)传说(“原始数据”“平滑数据”

入力引数

すべて折りたたむ

入力配列。ベクトル、行列、多次元配列、table または timetable として指定します。一个が表または时间表の場合,変数を数値にするか,名前と値のペア“DataVariables”を使用して数値変数を明示的にリストしなければなりません。変数の指定は,数値でない変数も含む表を操作する場合に便利です。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|表格|时间表

複素数のサポート:あり

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

行列一个を考えます。

B = smoothdata (1)一个の各列のデータを平滑化します。

B = smoothdata (2)一个の各行のデータを平滑化します。

一个が表または时间表の場合,昏暗的はサポートされません。smoothdataは,個々の表または时间表の変数に対して個別に動作します。

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

平滑化法。次のいずれかとして指定します。

  • “movmean”- - - - - -一个の各ウィンドウの移動平均。この方法は、データの周期的なトレンドを低減するのに便利です。

  • “movmedian”- - - - - -一个の各ウィンドウの移動中央値。この方法は、外れ値が存在する場合にデータの周期的なトレンドを低減するのに便利です。

  • “高斯”- - - - - -一个の各ウィンドウのガウス加重移動平均。

  • “洛斯”- - - - - -一个の各ウィンドウの線形回帰。この方法は計算量が多くなる場合がありますが、不連続点は少なくなります。

  • “黄土”- - - - - -一个の各ウィンドウの2次回帰。この方法は“洛斯”より計算量がやや多くなります。

  • “rlowess”- - - - - -一个の各ウィンドウのロバスト線形回帰。この方法は“洛斯”より計算量が多くなりますが,外れ値に対してよりロバストになります。

  • “rloess”- - - - - -一个の各ウィンドウのロバスト2次回帰。この方法は“黄土”より計算量が多くなりますが,外れ値に対してよりロバストになります。

  • “sgolay”——Savitzky-Golayフィルター。一个の各ウィンドウで近似される2次多項式に従って平滑化します。この方法は、データが急速に変動する場合に他の方法より効果的です。

ウィンドウの長さ。正の整数スカラー、正の整数の 2 要素ベクトル、正の duration スカラーまたは正の duration の 2 要素ベクトルとして指定します。

窗口が正の整数スカラーである場合,ウィンドウは現在の要素を中心にして配置され,窗口1個の隣接する要素を含みます。窗口が偶数である場合,ウィンドウは現在の要素および直前の要素を中心にして配置されます。窗口が正の整数の2要素ベクトルf [b]である場合,ウィンドウには現在の要素,b個前までの要素,f個後までの要素が含まれます。

一个が时间表である場合,または“SamplePoints”datetimeまたは持续时间ベクトルとして指定されている場合,窗口の型は持续时间でなければならず,ウィンドウはサンプル点を基準にして計算されます。

ウィンドウの長さが出力引数としても指定されている場合,出力値は入力値と一致します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|持续时间

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

  • “omitnan”——入力の値を無視します。ウィンドウがすべての値を含む場合,smoothdataを返します。

  • “includenan”——各ウィンドウで計算する場合にも対象にします。この場合,結果はとなります。

名前と値のペアの引数

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

例:smoothdata(“SmoothingFactor”,0.5)

ウィンドウサイズ係数。“SmoothingFactor”と0から1の範囲のスカラーで構成されるコンマ区切りのペアとして指定します。“SmoothingFactor”の値により,ヒューリスティックなウィンドウサイズがスケーリングされ,平滑化のレベルが調整されます。値が0に近いと,移動ウィンドウの長さは小さくなり,平滑化が小さくなります。値が1に近いと,移動ウィンドウの長さは大きくなり,平滑化が大きくなります。

“SmoothingFactor”は既定ででは0.25,窗口が指定されていない場合のみ指定できます。

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

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

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

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

入力データが时间表の場合,この名前と値のペアはサポートされません。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|datetime|持续时间

表変数。“DataVariables”と,変数名,変数名の细胞配列,数値ベクトル,逻辑ベクトル,関数ハンドル,または表vartype添字のいずれかで構成されるコンマ区切りのペアとして指定します。“DataVariables”値は,入力表内の平滑化する変数を示し,次のいずれかにすることができます。

  • 単一の表変数名を指定する文字ベクトル

  • 各要素が表変数名である文字ベクトルの细胞配列

  • 表変数インデックスのベクトル

  • 各要素が表変数に対応する逻辑ベクトル。真正的の場合は対応する変数を含めて,の場合は対応する変数を除外します。

  • 入力として表をとり,論理スカラーを返す関数ハンドル

  • 表格vartype添字

例:“年龄”

例:{“高度”,“体重”}

例:@isnumeric

例:vartype(数字)

Savitzky-Golay次数。“度”と非負の整数で構成されるコンマ区切りのペアとして指定します。この名前と値のペアは,指定された平滑化法が“sgolay”である場合のみ指定できます。“度”の値は,各ウィンドウ内のデータに近似するSavitzky-Golayフィルターの多項式の次数に対応します。既定値は2です。

サンプル点が一様な場合,“度”の値はウィンドウの長さより小さくなければなりません。サンプル点が一様でない場合、この値はどのウィンドウの最大点数よりも小さくなければなりません。

出力引数

すべて折りたたむ

出力配列。ベクトル、行列または多次元配列として返されます。Bのサイズは一个と同じです。

ウィンドウの長さ。正の整数スカラー、正の整数の 2 要素ベクトル、正の duration スカラーまたは正の duration の 2 要素ベクトルとして返されます。

入力引数として窗口が指定されている場合,出力値は入力値と一致します。入力引数として窗口が指定されていない場合,この値は入力データに基づいてsmoothdataにより経験則的に決定されるスカラーです。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|持续时间

アルゴリズム

平滑化法のウィンドウサイズが指定されていない場合,smoothdataは経験則に基づいて既定のウィンドウサイズを計算します。平滑化係数τについて,経験則により入力データのエネルギーの約100 *τパーセントを減衰する移動平均ウィンドウサイズを推定します。

拡張機能

R2017aで導入