Avoiding unnecessary for loops
Mostrar comentarios más antiguos
How do I do this without the loops in a few lines?
S = zeros(100,100);
sig = 0.05;
for i = 1:100
for j = 1:100
S(i,j) = exp(-norm(D(i,:)-D(j,:),'fro')/sig);
end
end
2 comentarios
Deepayan Bhadra
el 7 de Mzo. de 2018
Jos (10584)
el 7 de Mzo. de 2018
Note that S will be symmetric with zeros on the diagonal, as norm(x) = norm(-x), so you can let j run from i+1 to 100 to save time.
Since norm is not vectorized it is hard to get rid of the for-loops at all.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!