机器人空间包络边界

function [T]=bianjie(a,b)
x=a'; y=b';
j=1;
ind_maxx=find(x==max(x));
ind_minx=find(x==min(x));
for i=unique(x)   %获得x的不同值    
    if  i==min(x)
         y1=y(ind_minx); %与该 x 对应的y值
         T01=[x(ind_minx)',y(ind_minx)'];
    else if i==max(x)
          y1=y(ind_minx); %与该 x 对应的y值 
         T02=[x(ind_maxx)',y(ind_maxx)'];
        else
            ind_x=(x==i);   % x 某一相同值的所有位置
            y1=y(ind_x); %与该 x 对应的y值
            y_max=max(y1);
            y_min=min(y1);  %获得y最大值和最小值
           T1(j,:) =[i, y_min];
           T2(j,:) =[i, y_max];    
           j = j+1;
        end
    end
end
 T2=flipud(T2);
T01=flipud(T01);
  T2(length(T2)+1,:)=[T01(1,1),T01(1,2)];
T=[T01;T1;T02;T2] ;
% 将曲线封闭


end

  

上一篇:机器人学习--pitch yaw roll


下一篇:NSGA2算法中的拥挤度计算