データの平滑化
説明
データの平滑化タスクでは、ノイズを含むデータを対話的に平滑化できます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。
このタスクを使用すると、次を行うことができます。
ワークスペース変数内のデータを平滑化する方法をカスタマイズする。
パラメーターを調整して、平滑化の程度を増減する。
平滑化したデータに対する入力データを可視化する。
その他
関連する関数
[データの平滑化] では、関数 smoothdata
を使用するコードが生成されます。
![](smoothdataletalternative.png)
タスクを開く
[データの平滑化] タスクを MATLAB エディターでライブ スクリプトに追加するには、以下を行います。
[ライブ エディター] タブで [タスク] 、 [データの平滑化] を選択します。
スクリプトのコード ブロック内に、
smooth
、noisy
、movmedian
、lowess
などの関連キーワードを入力します。コマンドの補完候補から[データの平滑化]
を選択します。キーワードによっては、1 つ以上の対応するパラメーターがタスクで自動的に更新されます。
例
平滑化の程度を増やしてノイズを低減
ライブ エディターの [データの平滑化] タスクを使用して、平滑化係数を調整して平滑化の程度を対話的に増やすことでノイズを低減します。
まず、ノイズを含むデータのベクトルを作成します。
x = 1:100;
rng(0,"twister")
data = cos(2*pi*0.05*x+2*pi*rand) + 0.5*randn(1,100);
ライブ エディターで [データの平滑化] タスクを開きます。ノイズを含むデータを平滑化するには、data
を入力データとして選択します。サンプル点は "x" 軸の位置の既定のベクトルと同じであるため、[X 軸] フィールドで x
を指定する必要はありません。
[平滑化法] フィールドで [Gaussian filter]
法を選択して、ガウス加重移動平均フィルターでベクトルを平滑化します。プロットのタイトルに、平滑化ウィンドウの長さが 4 と示されます。あるいは、[移動ウィンドウのサイズを返す] を選択すると、平滑化されたデータに加えてウィンドウのサイズを返すことができます。
平滑化係数を既定値の 0.25 から 0.3 に増やし、使用するウィンドウのサイズを大きくして平滑化します。これにより、平滑化の程度が増大します。プロットのタイトルが更新され、平滑化ウィンドウの長さが 6 と示されます。
関連する例
パラメーター
入力データ
— ワークスペースからの有効な入力データ
ベクトル | table | timetable
このタスクは、ベクトル、table、または timetable に含まれる入力データに対して実行されます。データは single
型、double
型、logical
型、あるいは int64
などの符号付きまたは符号なし整数型にできます。
入力データが table または timetable の場合、サポートされている型の変数をすべて平滑化するには、[サポートされているすべての変数]
を選択します。single
型、double
型、符号付き整数型または符号なし整数型のすべての変数を平滑化するには、[すべての数値変数]
を選択します。サポートされている変数のうち、平滑化する対象を選択するには、[指定された変数]
を選択します。
平滑化法
— データの平滑化法
Moving mean
| Moving median
| Gaussian filter
| ...
平滑化法を、データの局所ウィンドウ全体に作用する次のオプションのいずれかとして指定します。
メソッド | 説明 |
---|---|
移動平均値 | 移動平均値。このメソッドは、データの周期的なトレンドを低減するのに便利です。 |
移動中央値 | 移動中央値。このメソッドは、外れ値が存在する場合にデータの周期的なトレンドを低減するのに便利です。 |
ガウス フィルター | ガウス加重移動平均値。 |
局所線形回帰 (Lowess) | Lowess 線形回帰。このメソッドは計算量が多くなる場合がありますが、不連続点は少なくなります。 |
局所二次回帰 (Loess) | Loess 二次回帰。このメソッドは局所線形回帰より計算量がやや多くなります。 |
ロバストな Lowess | ロバストな Lowess 線形回帰。このメソッドは、計算量の多い局所線形回帰のバージョンですが、外れ値に対してよりロバストになります。 |
ロバストな Loess | ロバストな Loess 二次回帰。このメソッドは、計算量の多い局所二次回帰のバージョンですが、外れ値に対してよりロバストになります。 |
Savitzky-Golay 多項式フィルター | Savitzky-Golay 多項式フィルター。指定された次数の多項式に従って平滑化し、各ウィンドウで近似します。このメソッドは、データが急速に変動する場合に他のメソッドより効果的です。 |
移動ウィンドウ
— 平滑化法のウィンドウ
中央揃え
(既定値) | 非対称
一般的な平滑化係数を指定する代わりに、平滑化方法のウィンドウのタイプとサイズを指定します。移動ウィンドウのタイプとサイズを指定しない場合、ヒューリスティックな方法でウィンドウ サイズが決定されます。
ウィンドウ | 説明 |
---|---|
中央揃え | 現在の点を中心にしてウィンドウの長さを指定する |
非対称 | 現在の点の前にある要素数と、現在の点の後にある要素数を含むウィンドウを指定する |
ウィンドウのサイズは、[X 軸] の変数の単位を基準とします。
制限
[データの平滑化] タスクでは 2 次元平滑化ウィンドウはサポートされていません。
バージョン履歴
R2019b で導入R2024a: 移動ウィンドウのサイズを返す
平滑化法で使用される移動ウィンドウのサイズを返します。移動ウィンドウのサイズを指定した場合、返されるウィンドウのサイズは入力値と一致します。移動ウィンドウのサイズを指定しない場合、返されるウィンドウのサイズは入力データに基づいてヒューリスティックな方法で決定されます。移動ウィンドウが非対称の場合は、返されるウィンドウが非負の整数の 2 要素ベクトル [b f]
になり、ウィンドウには現在の要素、b
個前までの要素、f
個後までの要素が含まれます。
R2022b: 複数の table 変数のプロット
このライブ エディター タスクの表示で、複数の table 変数を同時にプロットします。データが table または timetable の場合、選択したすべての table 変数をタイル表示チャート レイアウトで一度に可視化するには、[表示する変数] フィールドを設定します。
R2022b: 平滑化した table 変数の追加
入力 table 変数に、平滑化したデータを含む table 変数を追加します。入力データが table または timetable の場合、平滑化したデータを追加するには、[出力形式] フィールドを設定します。
R2022a: 入力に 100 万個を超える要素がある場合、ライブ エディター タスクは自動実行されない
入力に 100 万個を超える要素がある場合、このライブ エディター タスクは自動実行されません。以前のリリースでは、入力がどのようなサイズでもタスクは必ず自動実行されていました。入力の要素が多い場合、このタスクで生成されたコードは実行にかなりの時間 (数秒間以上) を要することがあります。
タスクが自動的に実行されない場合、自動実行インジケーターが無効になります。必要に応じてタスクを手動で実行するか、タスクの自動実行の有効化を選択することができます。
R2021a: 複数の table 変数の操作
このライブ エディター タスクは、複数の table 変数を同時に操作できます。入力データが table または timetable の場合、複数の変数を操作するには、[サポートされているすべての変数]
または [指定された変数]
を選択します。すべての変数、または変更した変数のみを返し、可視化する変数を指定します。
参考
関数
ライブ エディター タスク
アプリ
MATLAB コマンド
次の 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)