Tengo este siguiente ciclo para un código (que calcula los histogramas). Estoy escribiendo en Matlab. Como soy nuevo en Matlab, no conozco ningún método más rápido para hacer esto. Actualmente estoy escribiendooptimización de matlab para el ciclo
for i=1:size(b)
a(b(i)) = a(b(i)) + 1;
end
¿Hay algún método más rápido para hacerlo, preferiblemente aquellos que no requieren el ciclo for?
Observación general: 'size' no es la función correcta para lo que está haciendo ahora, en lugar utiliza [longitud] (http://www.mathworks.nl/help/matlab/ref/length.html) o [numel] (http://www.mathworks.nl/help/matlab/ref/numel.html). –
La idea de que los bucles for-loops son ineficientes/lentos y deben ser reemplazados si es posible no está comprobada. Aunque podría reemplazar este código por algo más rápido, probablemente ahorre solo una fracción de segundo. Este no es el nivel de optimización del código que debería preocuparle. – Kavka
@Kavka Con respecto a este tipo de bucle, estoy de acuerdo. Un bucle for más complejo que manipule matrices grandes valdría la pena vectorizar, ¿verdad? Matlab fue diseñado para trabajar con Matrices, se supone que todas sus operaciones matriciales están optimizadas. – Derek