Zeilen einer Matrix mit einigen Zeilenvektoren vergleichen

  • Ich habe dieses Programm fünf Stunden lang ausgeführt und noch nicht abgeschlossen. Ich frage mich, ob wir Änderungen vornehmen können, um die Rechenzeit zu reduzieren.

    Ich verwende mehrere for-Schleifen, und dies erhöht die Rechenzeit erheblich. mein Ziel ist es, den Inhalt der Zeilen einer Matrix (4435 × 2000) mit 6 Zeilenvektoren (1 × 2000) zu vergleichen. Der Vergleich wird für Teile von 64 Werten durchgeführt.

    for i=1:4435          
        for j=70:2000      
            L = A(i,j);      
            j1=0;     
            j2=0;     
            j3=0;     
            j4=0;     
            j5=0;     
            j6=0;      
            for i1=70:2000  
                if D1(B(v,1),i1)==L  
                    j1=i1;  
                    Break  
                end  
            end
    
            for i2=1:2000
                if A(B(v-1,1),i2)==L
                    j2=i2;
                    Break
                end
            end
    
            for i3=1:2000
                if A(B(v-2,1),i3)==L
                    j3=i3;
                    Break
                end
            end
    
            for i4=1:2000
                if A(C(mm,1),i4)==L
                    j4=i4;
                    Break
                end
            end
    
            for i5=1:2000
                if A(C(mm-1,1),i5)==L
                    j5=i5;
                    Break
                end
            end
    
            for i6=1:2000
                if A(C(mm-2,1),i6)==L
                    j6=i6;
                    Break
                end
            end
    
            if j1>64             
               if A(i,j-63:j)==A(B(v,1),j1-63:j1)
                  m_A1(i,j)=1;
               else
                  m_A1(i,j)=0;
               end
            end 
    
            if j2>64             
               if A(i,j-63:j)==A(B(v-1,1),j2-63:j2)
                  m_A2(i,j)=1;
               else
                  m_A2(i,j)=0;
               end
            end 
    
            if j3>64             
               if A(i,j-63:j)==A(B(v-2,1),j3-63:j3)
                  m_A3(i,j)=1;
               else
                  m_A3(i,j)=0;
               end
            end 
    
            if j4>64             
               if A(i,j-63:j)==A(C(mm,1),j4-63:j4)
                  m_A4(i,j)=1;
               else
                  m_A4(i,j)=0;
               end
            end 
    
             if j5>64             
               if A(i,j-63:j)==A(C(mm-1,1),j5-63:j5)
                  m_A5(i,j)=1;
               else
                  m_A5(i,j)=0;
               end
             end 
    
             if j6>64             
               if A(i,j-63:j)==A(C(mm-2,1),j6-63:j6)
                  m_A6(i,j)=1;
               else
                  m_A6(i,j)=0;
               end
            end 
    
        end
    end
    < / code> 
    06 May 2016
    200_successAsik
0 answers