function WXPX_index_cell=kzmbWXPX(mbmc,mblx,WXDJ,D,V,K,Xd)%空中目标威胁等级排序
% mbmc m*1目标名称;
% mblx m*1目标的类型(m为目标数)
% WXDJ m*1目标的威胁等级划分
% D m*1目标的水平距离(km)
% V m*1目标的飞行速度(km/h)
% K 常数;其值决定Xd对排序的影响(h/(km*弧度2))
% Xd 我舰和导弹之间连线与导弹飞行方向间的夹角 (弧度)
% WXPX m*1目标的威胁等级排序
m=size(mblx,1);
j=1;%导弹子序列标志
jj1=1;%一级飞机子序列1标志
jj2=1;%一级飞机子序列2标志
jj3=1;%一级飞机子序列3标志
jjj1=1;%二级飞机子序列1标志
jjj2=1;%二级飞机子序列2标志
jjjj=1;%三级飞机子序列标志
daodan={};
daodan_cell={};
yijizixulie1={};
yijizixulie2={};
yijizixulie3={};
erjizixulie1={};
erjizixulie2={};
yijizixulie1_cell={};
yijizixulie2_cell={};
yijizixulie3_cell={};
yijizixulie_cell={};
erjizixulie1_cell={};
erjizixulie2_cell={};
erjizixulie_cell={};
sanjizixulie={};
sanjizixulie_cell={};
for i=1:m
if mblx(i)==1 %导弹威胁排序
WXPX(i)=D(i)/V(i)+K(i)*D(i)*Xd(i).^2;
daodan(j,:)={mbmc{i},i,WXPX(i)};%导弹子序列
j=j+1;
elseif mblx(i)~=1 & WXDJ{i}==' Ⅰ' %一级威胁飞机排序
if D(i)<=8
if Xd(i)==0
WXPX(i)=D(i)/V(i);
else
WXPX(i)=D(i)/V(i)*Xd(i)/sin(Xd(i));
end
yijizixulie1(jj1,:)={mbmc{i},i,WXPX(i)};%子序列1
jj1=jj1+1;
elseif D(i)>8 & abs(Xd(i))<90
WXPX(i)=D(i)/V(i)/cos(Xd(i));
yijizixulie2(jj2,:)={mbmc{i},i,WXPX(i)};%子序列2
jj2=jj2+1;
else
WXPX(i)=D(i)/V(i);
yijizixulie3(jj3,:)={mbmc{i},i,WXPX(i)};%子序列3
jj3=jj3+1;
end
elseif WXDJ{i}==' Ⅱ' %二级威胁飞机排序
if D(i)<=8 & mblx(i)==4 %小于8公里的歼击机
if Xd(i)==0
WXPX(i)=D(i)/V(i);
else
WXPX(i)=D(i)/V(i)*Xd(i)/sin(Xd(i));
end
erjizixulie1(jjj1,:)={mbmc{i},i,WXPX(i)};%子序列1
jjj1=jjj1+1;
elseif mblx(i)==2 | mblx(i)==3 %二级轰击机或直升机;
if abs(Xd(i))<90
WXPX(i)=D(i)/V(i)/cos(Xd(i));
else
WXPX(i)=D(i)/V(i);
end
erjizixulie2(jjj2,:)={mbmc{i},i,WXPX(i)};%子序列2
jjj2=jjj2+1;
end
else
sanjizixulie(jjjj,:)={mbmc{i},i,D(i)}; %按照距离远近排序
jjjj=jjjj+1;
end
end
%[B,IX] = sort(A,...)
%---------导弹子序列--------
if size(daodan,1)~=0
daodan_WXPX=cell2mat(daodan(:,3));
[B,IX] = sort(daodan_WXPX,'descend');
daodan_cell=daodan(IX,1);
end
%---------一级飞机序列----------
if size(yijizixulie1,1)~=0
yijizixulie1_WXPX=cell2mat(yijizixulie1(:,3));
[B,IX] = sort(yijizixulie1_WXPX,'descend');
yijizixulie1_cell=yijizixulie1(IX,1);
end
if size(yijizixulie2,1)~=0
yijizixulie2_WXPX=cell2mat(yijizixulie2(:,3));
[B,IX] = sort(yijizixulie2_WXPX,'descend');
yijizixulie2_cell=yijizixulie2(IX,1);
end
if size(yijizixulie3,1)~=0
yijizixulie3_WXPX=cell2mat(yijizixulie3(:,3));
[B,IX] = sort(yijizixulie3_WXPX,'descend');
yijizixulie3_cell=yijizixulie3(IX,1);
end
yijizixulie_cell=[yijizixulie1_cell;yijizixulie2_cell;yijizixulie3_cell];%一级飞机序列
%---------二级飞机序列----------
if size(erjizixulie1,1)~=0
erjizixulie1_WXPX=cell2mat(erjizixulie1(:,3));
[B,IX] = sort(erjizixulie1_WXPX,'descend');
erjizixulie1_cell=erjizixulie1(IX,1);
end
if size(erjizixulie2,1)~=0
erjizixulie2_WXPX=cell2mat(erjizixulie2(:,3));
[B,IX] = sort(erjizixulie2_WXPX,'descend');
erjizixulie2_cell=erjizixulie2(IX,1);
end
erjizixulie_cell=[erjizixulie1_cell;erjizixulie2_cell];%二级飞机序列
%---------三级飞机序列----------
if size(sanjizixulie,1)~=0
sanjizixulie_WXPX=cell2mat(sanjizixulie(:,3));
[B,IX] = sort(sanjizixulie_WXPX,'ascend');
sanjizixulie_cell=sanjizixulie(IX,1);%三级飞机序列
end
WXPX_cell=[daodan_cell;yijizixulie_cell;erjizixulie_cell;sanjizixulie_cell];%总的排序
k=1;
for i=1:m
for j=1:m
if strcmp(mbmc{i},WXPX_cell{j})
WXPX_index(k)=j;
k=k+1;
end
end
end
WXPX_index_cell=num2cell(WXPX_index);