?? fget_data_association_hypotheses.m
字號:
function [e,ee]=fget_data_association_hypotheses(omega)
[m,n]=size(omega);
point_layer=1;%深度優(yōu)先算法層數(shù)指針
point_measurement=zeros(m,1);%量測和目標(biāo)關(guān)聯(lián)指針
point_measurement(1)=1; %設(shè)置第一個(gè)量測指針為一,即第一個(gè)量測和來自雜波
j=1;%量測標(biāo)識
k=1;%可行事件標(biāo)識
X=ones(m,1); % 可行事件中間輸出變量
X_L=ones(2,1); % 第L層和目標(biāo)關(guān)聯(lián)事件
e(:,k)=X; % 可行事件最終輸出變量
X_jL=ones(n,1);%第L層關(guān)聯(lián)目標(biāo)位置中間輸出變量
% 以下為深度優(yōu)先搜索算法,詳見B.ZHOU, "multitarget tracking in clutter:fast algorithms for data association",IEEE on AES
%VOL.29 NO.2 1993。 因?yàn)閙atlab數(shù)組要從1開始,因此該程序中層數(shù)L對應(yīng)與文章中的L-1層
while j<=m
while point_layer<=min(m,n) & j<=m
v=omega(j,:);%提確認(rèn)陣第j行元素。
Z=find(v);%找出非零元素位置,即找出第j個(gè)量測可能的來源
[find_sign,X,point_measurement]=fget_next(Z,X,X_jL,j,point_layer,point_measurement); % 判斷下一個(gè)量測是否滿足條件
while find_sign==1
point_layer=point_layer+1;%搜索下一層合適的量測
X_L(:,point_layer)=[j;X(j)];
X_jL(point_layer)=X(j);
k=k+1;
e(:,k)=X; % 把可行事件賦值給可行事件最終輸出變量
find_sign=0;%設(shè)置找到合適量測標(biāo)志為0退出循環(huán)
end
j=j+1;
end
if point_layer>=2
jL=X_L(1,point_layer);
j=jL;
point_layer=point_layer-1;
end
end
[mm,nn]=size(e);
for i=1:nn
ee(:,:,i)=zeros(mm,3);
for j=1:mm
ee(j,e(j,i),i)=1;
end
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -