I have run this program for five hours and it has not yet completed. I wonder if we can make changes to reduce the computation time.
I use several for loop and this greatly increases the computation time. my goal is to compare the contents of the rows of a matrix (4435 × 2000) with 6 row vectors (1 × 2000). The comparison is made on parts of 64 values.
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