
n1=90
m_Rad=10;
m_Fahrer=70;
r_Rad=34.29;
r_Pedal=17;
alpha=0;
F_Rad=5.33;
c_w=1.1;
A=0.42;
rho=1.25;

k=5; % Anzahl der Spalten
PI=4*atan(1);

U=2*PI*r_Rad/100
V=U*0.9
g=18; % Anzahl der Gänge
M=[];

%for i= 12:34
    for j=24:54
        for l=10:34
         i=1 ;  
        [i,k]=size(M);
        
        E=(j/l)*V;
        v=E*n1/60;
        P=v*((m_Rad+m_Fahrer)*9.81*sin(alpha*0.01)+F_Rad+(A*rho*c_w*v^2)/2);
        M(i+1,:)=[l,j,E,v,P];
        format bank
        %plot(E,l)
        %hold on
        %A(i*j,3)=[i*1000,j*,M];
       % E= [i; j; M]';
       %E
        %end
       
       
        end
end
M;

E=sortrows(M,5);

F=E(E(:,5)<200,:); % löscht alle Werte mit P>200
G=F(F(:,3)>=V,:); % löscht alle Werte welche eine kleinere Übersetzung wie der Umfang haben
maxi=max(G(:,3));
mini=min(G(:,3));
deltaE=(maxi-mini)/g

s=G(:,3);
e=mod(s,deltaE);
z=s-mini*ones(size(s));
b=mod(z,deltaE);
p=find(b<0.05);
N=G(p,:); %neue Matrix mitrichtigen deltaE

zahn2=N(:,2);
werte=unique(zahn2);
[n,bins]=hist(zahn2,werte);
maxiHaeuf=max(n);
maxiHaeufWert=bins(n==maxiHaeuf)
O=[];
for k=1:length(maxiHaeufWert)
    ind=N(N(:,2)==maxiHaeufWert(k,1),:);
    O=[ind;O];
end
O
% maxWert=max(zahn2(ind));
% maxWertIndex=find(zahn2==maxWert);
% 
% O=N(maxWertIndex,:)% gibt häufigste Zähne

if length(maxiHaeufWert)<=6
        P=[];
        for kl=1:length(maxiHaeufWert)
            rat=N(N(:,2)~=maxiHaeufWert(kl,1),:);
            P=[rat;P];
        end
        P;

    
        zahn22=P(:,2);
        werte2=unique(zahn22);
        [n2,bins2]=hist(zahn22,werte2);
        maxiHaeuf2=max(n2);
        maxiHaeufWert2=bins2(n2==maxiHaeuf2)
        Q=[];
        for l=1:length(maxiHaeufWert2)
            in=P(P(:,2)==maxiHaeufWert2(l,1),:);
            Q=[in;Q];
        end
        Q
        x=length(maxiHaeufWert)+length(maxiHaeufWert2);
    if x<=6
        S=[];
        for km=1:length(maxiHaeufWert2)
            ra=P(P(:,2)~=maxiHaeufWert2(km,1),:);
            S=[ra;S];
        end
        S;

        zahn23=S(:,2);
        werte3=unique(zahn23);
        [n3,bins3]=hist(zahn23,werte3);
        maxiHaeuf3=max(n3);
        maxiHaeufWert3=bins3(n3==maxiHaeuf3)

        R=[];
        for m=1:length(maxiHaeufWert3)

            Rt=S(S(:,2)==maxiHaeufWert3(m,1),:);
           R=[R; Rt];
        end
        R
    
        figure (1)
        plot(O(:,3),O(:,1),'*r',Q(:,3),Q(:,1),'*b',R(:,3),R(:,1),'*g')
        grid on
        title('mögliche Gänge für optimale Entfaltungen')
        legend('1','2','3')
        xlabel('Entfaltung')
        ylabel('Zähnezahl')
            maxiHaeufWert
            maxiHaeufWert2
            maxiHaeufWert3
        
    else
     figure (1)
        plot(O(:,3),O(:,1),'*r',Q(:,3),Q(:,1),'*b')
        grid on
        title('mögliche Gänge für optimale Entfaltungen')
        legend('1','2')
        xlabel('Entfaltung')
        ylabel('Zähnezahl')
         maxiHaeufWert
        maxiHaeufWert2
    end
 else
          plot(O(:,3),O(:,1),'*r')
        grid on
        title('mögliche Gänge für optimale Entfaltungen')
        legend('1')
        xlabel('Entfaltung')
        ylabel('Zähnezahl')
    maxiHaeufWert


end

% z1=Z(:,1);
% so=sortrows(z1);
% t=unique(z1);
% [b,c]=hist(z1,t);
% ma=max(b);
% mat=c(b==ma);
% Z1=Z(Z(:,1)==mat(1,1),:)
% 
% ZA=Z(Z(:,1)~=mat,:);
% z1a=ZA(ZA(:,1));
% ta=unique(z1a);
% [ba,ca]=hist(z1a,ta);
% maa=max(ba);
% mata=ca(ba==maa)
% Z2=ZA(ZA(:,1)==mata(1,1),:)
% 
% Zb=Z(Z(:,1)~=mat&Z(:,1)~=mata,:);
% z1b=Zb(:,1);
% tb=unique(z1b);
% [bb,cb]=hist(z1b,tb);
% mab=max(bb);
% matb=cb(bb==mab)
% Z3=Zb(Zb(:,1)==matb(1,1),:)
% Z4=Zb(Zb(:,1)==matb(2,1),:)
% Z5=Zb(Zb(:,1)==matb(3,1),:)
% Z6=Zb(Zb(:,1)==matb(4,1),:)
% Z7=Zb(Zb(:,1)==matb(5,1),:)
% %Z8=Zb(Zb(:,1)==matb(6,1),:)
% End=[Z1;Z2;Z3;Z4;Z5;Z6;Z7]
% End2=sortrows(End,3)


