このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
不規則にサンプリングされたデータの正則化
この例では、不規則にサンプリングされたデータを正規化し、測定間隔が一定になるようにする方法を示します。ThingSpeak™チャネルから読み取られたデータのタイムスタンプを更新して不規則性を除去し、データをチャネルに書き込みます。ネットワーク遅延やハードウェアのリセットによって測定データにタイムスタンプの変動が生じると、データの前処理やデータ分析アルゴリズムに影響を与える可能性があります。多くのアルゴリズムが正しく機能するには、定期的にサンプリングされたデータが必要です。
気象観測所チャネルからデータを読み取る
ThingSpeakチャネル12397 には、マサチューセッツ州ネイティックにあるMathWorks®気象観測所からのデータが含まれています。データは 1 分ごとに収集されます。チャネルの Field 4 には気温データが含まれています。不規則にサンプリングされたデータをチェックするには、 thingSpeakRead
関数を使用してチャネル12397 から気温データを読み取ります。
data = thingSpeakRead(12397,'NumMin',60,'Fields',4,'outputFormat','timetable');
不規則にサンプリングされたデータをチェックする
チャネル12397 から読み取られた過去 60 分間のデータがタイムテーブルとして保存されます。isregular
関数を使用して、チャネルデータが定期的にサンプリングされているかどうかを確認します。データが不規則にサンプリングされている場合は、対象期間に対して等間隔の時間ベクトルを生成します。linspace
、 startTime
、 stopTime
、および測定数を使用して、新しい時間ベクトルを生成します。
regularFlag = isregular(data,'Time'); if ~regularFlag startTime = data.Timestamps(1); stopTime = data.Timestamps(end); newTimeVector = linspace(startTime,stopTime,height(data)); data.Timestamps = newTimeVector; end
ThingSpeak へのデータの送信
thingSpeakWrite
関数を使用して、処理されたデータをThingSpeakチャネルに送信します。
% Change the channelID and the writeAPIKey to send data to your channel. channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,data,'WriteKey',writeAPIKey);
参考
thingSpeakRead
(MATLAB) | thingSpeakWrite
(MATLAB) | linspace
(MATLAB)