Borrar filtros
Borrar filtros

The Code Runs Too Long, Should I Abort It?

2 visualizaciones (últimos 30 días)
Ashvin Hamzah Driwantara
Ashvin Hamzah Driwantara el 14 de Dic. de 2016
Editada: Adam el 14 de Dic. de 2016
I run this code and I think it runs too long. Any solution?
c6 and c3 is matrix with 3300x2200 grids.
if true
e=0.06+c6;
f=c3;
[m,n]=size(f);
for i=1:m;
for j=1:n;
if f(i,j)>e;
t(i,j) = 1;
else
t(i,j) = 0;
end
end
end
end

Respuesta aceptada

Adam
Adam el 14 de Dic. de 2016
Editada: Adam el 14 de Dic. de 2016
Can't you just replace the whole thing with:
t = c3 > e;
or
t = double( c3 > e );
if you want the 0s and 1s as doubles rather than logicals?
doc vectorization
gives an introduction to this very powerful alternative to nested for loops which is almost always noticeably faster too.
  2 comentarios
Ashvin Hamzah Driwantara
Ashvin Hamzah Driwantara el 14 de Dic. de 2016
u mean like this?
if true
e=0.06+c6;
f=c3>e;
[m,n]=size(f);
for i=1:m;
for j=1:n;
if f(i,j)==1;
t(i,j) = 1;
else
t(i,j) = NaN;
end
end
end
end
Adam
Adam el 14 de Dic. de 2016
Editada: Adam el 14 de Dic. de 2016
No, I mean just literally replace everything after
e=0.06+c6;
with that one line:
t = c3 > e;

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by