www.gusucode.com > 基于matlab编程雷达目标航迹跟踪源码程序 > 基于matlab编程雷达目标航迹跟踪源码程序/数据处理程序/draw_track.m

    function  draw_track(track_data_output , number_of_track)
%函数功能:航迹显示
%在极坐标下画出所有航迹
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 输入变量 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% track_data_output --> 数据处理后,最终的输出,为一多行9列矩阵:1距离,2方位角,3俯仰角,4属于第几条航迹,5来0/去1,6积累时间,7是第几个点,8实点0/补点1,9属于哪个通道
% number_of_track  -->  已经形成的可靠航迹数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 输入变量 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if(number_of_track>0)
    figure(1);
    
    %pause(0.5);
    polar(0,13000,'w.');title('航迹显示');
    hold on;
    for i=1:number_of_track
        point_of_track=find(track_data_output(:,4)==i);%找出航迹号为i的所有点的所在行
        num_of_point=size(point_of_track,1);%第i条航迹的点迹数
        point_supple=find(track_data_output(point_of_track,8)==1);%找出第i条航迹的所有补点的所在行
        num_of_supple=size(point_supple,1);%第i条航迹的补点数
         %%%%%%%%%%%%%%%%第i条航迹的所有点%%%%%%%%%%%%%%%%%%%
        range=track_data_output(point_of_track(1):point_of_track(num_of_point),1)';
        azimuth=track_data_output(point_of_track(1):point_of_track(num_of_point),2)';
        elevation=track_data_output(point_of_track(1):point_of_track(num_of_point),3)';
        range_xy=range.*abs(cos(elevation));
         %%%%%%%%%%%%%%%%第i条航迹的所有点%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%第i条航迹的所有补点%%%%%%%%%%%%%%%%%%%
        range_supple=range(track_data_output(point_supple,7));
        azimuth_supple=azimuth(track_data_output(point_supple,7));
        elevation_supple=elevation(track_data_output(point_supple,7));
        range_xy_supple=range_xy(track_data_output(point_supple,7));
         %%%%%%%%%%%%%%%%第i条航迹的所有补点%%%%%%%%%%%%%%%%%%%
         %%%%%%%%%%%%%%%%第i条航迹的所有实点%%%%%%%%%%%%%%%%%%%
        range(track_data_output(point_supple,7))=[];
        azimuth(track_data_output(point_supple,7))=[];
        elevation(track_data_output(point_supple,7))=[];
        range_xy(track_data_output(point_supple,7))=[];
         %%%%%%%%%%%%%%%%第i条航迹的所有实点%%%%%%%%%%%%%%%%%%%
        switch i
            case 1
                polar(azimuth,range_xy,'k.');%legend('航迹1','NorthEastOutside');
                hold on;polar(azimuth_supple,range_xy_supple,'mp');
            case 2
                hold on;polar(azimuth,range_xy,'ro');
                hold on;polar(azimuth_supple,range_xy_supple,'bh');
            case 3
                hold on;polar(azimuth,range_xy,'yx');
                hold on;polar(azimuth_supple,range_xy_supple,'k>');
            case 4
                hold on;polar(azimuth,range_xy,'g+');
                hold on;polar(azimuth_supple,range_xy_supple,'rd');
            case 5
                hold on;polar(azimuth,range_xy,'b*');
                hold on;polar(azimuth_supple,range_xy_supple,'ys');
            case 6
                hold on;polar(azimuth,range_xy,'cd');
                hold on;polar(azimuth_supple,range_xy_supple,'m*');
            case 7
                hold on;polar(azimuth,range_xy,'ms');
                hold on;polar(azimuth_supple,range_xy_supple,'k+');
            case 8
                hold on;polar(azimuth,range_xy,'b<');
                hold on;polar(azimuth_supple,range_xy_supple,'cx');
            case 9
                hold on;polar(azimuth,range_xy,'kp');
                hold on;polar(azimuth_supple,range_xy_supple,'g.');
            case 10
                hold on;polar(azimuth,range_xy,'gh');
                hold on;polar(azimuth_supple,range_xy_supple,'bo');
        end
    end
    hold off;

end