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