?? fusion2.m
字號:
function X = Fusion2(chan, Taylor)
%%本程序實現第二層數據融合,采用貝葉斯推論
% - 參數chan是一i行,2列的矩陣,每1行是【x,y】定位坐標(其中i為定位次數CalNum)
% - 參數chan是一i行,2列的矩陣(其中i為定位次數CalNum)
%
% - X 為移動臺經算法處理后的位置.
% 參數檢查:
if nargout>1,
error('Too many output arguments.');
end
if nargin<2 | nargin>4,
error('Wrong number of input arguments.');
end
%算法開始,分別計算chan和泰勒算法的定位估計值的均值和方差
Cm = mean(chan); %1行2列,第一個x,第二個為y的均值
Tm = mean(Taylor);
Cv = var(chan); %1行2列,第一個x,第二個為y的方差
Tv = var(Taylor);
CTv = Cv + Tv; %1行2列,第一個x,第二個為y的的分母,及兩個方差和
% 經過貝葉斯推論后的定位估計
Vx = (Cv(1)*Tv(1))/(Cv(1) + Tv(1)); %貝葉斯后的方差,X坐標軸
Vy = (Cv(2)*Tv(2))/(Cv(2) + Tv(2)); %貝葉斯后的方差,Y坐標軸
Xlocat = (Tv(1)*Cm(1))/CTv(1) + (Cv(1)*Tm(1))/CTv(1); %定位結果X軸
Ylocat = (Tv(2)*Cm(2))/CTv(2) + (Cv(2)*Tm(2))/CTv(2); %定位結果Y軸
Locat = [Xlocat,Ylocat];
if nargout == 1,
X = Locat;
elseif nargout == 0,
disp(Locat);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -