プログラミング以外の質問は、the powers-that-be have determined that all MATLAB-related questions belong hereに持ち越すために事前にお詫びします。データのトレースと時間の表示 "不確実性のバンド"
私はいくつかのカルマンフィッターを行い、状態変数の推定値をプロットして、時間の経過とともに収束する様子を見てきました。さて、私は視覚的に共分散行列を表現したいと思います。これは推定値の不確実性を示しています。だから私は推定値の周りにバンドを塗りつぶす小さな関数を書いた。
(編集注:以前のバージョンでは、それが2つの標準偏差にする必要があるとき、各ハーフバンドの幅のため2*cov
を使用してのミスを犯した)
function [ls, regions] = plotuncertain(t, y, cov)
t = t(:);
y = y(:);
stdev = cov(:).^(1/2);
a = ones(size(t));
regions(1) = patch('XData', [t; t(end:-1:1)], ...
'YData', [y + 2*stdev; y(end:-1:1)], ...
'FaceVertexAlphaData', [0*a; a], ...
'FaceAlpha', 'interp', 'EdgeColor', 'none');
regions(2) = patch('XData', [t; t(end:-1:1)], ...
'YData', [y - 2*stdev; y(end:-1:1)], ...
'FaceVertexAlphaData', [0*a; a], ...
'FaceAlpha', 'interp', 'EdgeColor', 'none');
ls = line('XData', t, 'YData', y);
そして、それは合理的になります。
しかし、私は1つの軸に並行してプロットするのと同じ意味を持つ2つの状態変数を持っています。
UH-OH、K_1の初期データは、K_2バンド(の上半分)によって隠されています。 MATLABは、それらを提出した順序で線とパッチを描画しませんでした。そして、私が描く順序を制御することができたとしても、アルファブレンディングは、確率に基づいて色を混合するよりも最適ではありません。
両方を同時にレンダリングする方法はありますか? 2つの変数に2つの異なるカラープレーンを使用しているという事実を、どういうわけか利用できますか?
行のハンドルを取得し、 'uistack'worksを使ってそれらを上げる(2行目を上げる)か確認してください。 – Werner