三个txt数据提取角度数据,进行初步分类(4个子程序)

1、去除一组数据中的空值

2、通过对比时间,不同通道的数据点,认为某个时间点接近,就认为是一组数据

3、系统中导出的角度,和实际中略有不同,需要进行标准化

4、统计不同角度的占比

clc;clear;

% 载入数据 
% 去除0值
% 最终输出 d64;d65;d67

data604=load('Output_ID_604.txt');
data605=load('Output_ID_605.txt');
data607=load('Output_ID_607.txt');

d64=data604;d67=data607;

% 方法2 角度比较法
d652=data605;
z=find(d652(:,2)==0);
d652(z,:)=[]; 
d65=d652;


% 方法1 时间比较法
% d651=d650; d651(:,12)=d650(:,10)+d650(:,11)/1000;  % 时间 
% d651(:,13)=[0 ; d651([1:length(d651)-1],12)]; %复制时间
% d651(:,14)=d651(:,12)-d651(:,13); % 求时间差
% z=find(abs(d651(:,14))<0.1);% 把时间差中比较少的序号找出来
% d651(z,:)=[];  % 把相应的行去除

 

% 输入 d64;d65;d67
%输出 d47  角度数据和BS状态下的时间轴

d64(:,12)=d64(:,5)*1e4+d64(:,6)*1e2+d64(:,7);
d64(:,13)=d64(:,8)*1e4+d64(:,9)*1e2+d64(:,10)+d64(:,11)/1000;

d65(:,12)=d65(:,5)*1e4+d65(:,6)*1e2+d65(:,7);
d65(:,13)=d65(:,8)*1e4+d65(:,9)*1e2+d65(:,10)+d65(:,11)/1000;

d67(:,13)=d67(:,6)*1e4+d67(:,7)*1e2+d67(:,8);
d67(:,14)=d67(:,9)*1e4+d67(:,10)*1e2+d67(:,11)+d67(:,12)/1000;

z67=find(d67(:,3)~=0);  % DB状态统计
t67=d67(z67,[13 14 ]);


for   i=1:10000    %length(t67)    %i=1:1e5 
    z1=find(d64(:,12)==t67(i,1));
    [x1(i),y1(i)]=min(abs(d64(z1,13)-t67(i,2)));
     s1(i)=z1(y1(i));
    d64t(i,:)=d64(s1(i),12:13);
          
    z2=find(d65(:,12)==t67(i,1));
    [x2(i),y2(i)]=min(abs(d65(z2,13)-t67(i,2)));
      s2(i)=z2(y2(i));
    d65t(i,:)=d65(s2(i),12:13);
end d47=[d64(s1,1:4),d65(s2,1:2) t67(1:i,:)]; 
d47=[d47 s1' d64t t67(1:i,2)-d64t(:,2) s2' d65t t67(1:i,2)-d65t(:,2) ];
figure(7) subplot(3,2,1);hist(d47(:,1));subplot(3,2,2);hist(d47(:,2));
subplot(3,2,3);hist(d47(:,3)); subplot(3,2,4);hist(d47(:,4));
subplot(3,2,5);hist(d47(:,5));subplot(3,2,6);hist(d47(:,6));
% 角度标准化
% 输入d47
% 输出 d470
d470=d47;

d470(:,1)=180-d47(:,1)/10;
d471=d47(:,2:6)/10;

f1=fix(d471/180);
f2=1-f1;

d472=f1.*(d471-360);

d470(:,2:6)=d471.*f2+d472.*f1;

 

% 输入d470


sp=find(d470(:,1)<20&d470(:,2)<10&d470(:,3)<5&d470(:,4)<5);

g=find(d470(:,1)<180&d470(:,2)>10&d470(:,3)<180&d470(:,4)<5);

m=find(d470(:,1)<180&d470(:,2)<180&d470(:,3)<0&d470(:,4)>5);


d_sp=d470(sp,:);
d_g=d470(g,:);
d_m=d470(m,:);

d_qt=d470;
d_qt([ sp;g;m],:)=[];

 

posted @ 2020-09-03 10:11  redufa  阅读(264)  评论(0)    收藏  举报