ストリーム (センサーからのデータまたはサーバーでのクリック ストリーム データ) がスライディング ウィンドウ アルゴリズムを使用して送信される状況があり、データの最後の (たとえば) 500 サンプルをメモリに格納する必要があります。次に、これらのサンプルを使用して、ヒストグラム、集計を作成し、入力データ ストリームの異常に関する情報を取得します。
このような引き戸の作り方を教えてください。
ストリーム (センサーからのデータまたはサーバーでのクリック ストリーム データ) がスライディング ウィンドウ アルゴリズムを使用して送信される状況があり、データの最後の (たとえば) 500 サンプルをメモリに格納する必要があります。次に、これらのサンプルを使用して、ヒストグラム、集計を作成し、入力データ ストリームの異常に関する情報を取得します。
このような引き戸の作り方を教えてください。
これらの値をスライディング ウィンドウ方式で保存および維持する方法を知りたい場合は、データのランダム ストリームの最後の 10 個の値の移動平均を追跡する次の簡単な例を検討してください。
WINDOW_SIZE = 10;
x = nan(WINDOW_SIZE,1);
%# init
counter = 0;
stats = [NaN NaN]; %# previous/current value
%# prepare figure
SHOW_LIM = 200;
hAx = axes('XLim',[1 SHOW_LIM], 'YLim',[200 800]);
hLine = line('XData',1, 'YData',nan, 'EraseMode','none', ...
'Parent',hAx, 'Color','b', 'LineWidth',2);
%# infinite loop!
while true
val = randi([1 1000]); %# get new value from data stream
x = [ x(2:end) ; val ]; %# add to window in a cyclic manner
counter = counter + 1;
%# do something interesting with x
stats(1) = stats(2); %# keep track of the previous mean
stats(2) = nanmean(x); %# update the current mean
%# show and update plot
set(hLine, 'XData',[counter-1 counter], 'YData',[stats(1) stats(2)])
if rem(counter,SHOW_LIM)==0
%# show only the last couple of means
set(hAx, 'XLim', [counter counter+SHOW_LIM]);
end
drawnow
pause(0.02)
if ~ishandle(hAx), break, end %# break in case you close the figure
end
EraseMode=none
プロパティは廃止され、最近のバージョンでは削除されました。animatedline
同様の機能の代わりに関数を使用してください。