How to vectorize For loop and array with indexing
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
shahrizan jamaludin
el 8 de Mzo. de 2016
Comentada: shahrizan jamaludin
el 11 de Mzo. de 2016
Hello, i want to vectorize the linecirc function below:
xout = zeros(nAngles,2); %360x2 size
yout = zeros(nAngles,2); %360x2 size
for i = 1:nAngles
[xout(i,:),yout(i,:)] = linecirc(slope(i),intercept(i),xp,yp,rp); %slope=intercept=1x360 size
end
before this, i tried to use arrayfun. unfortunately arrayfun is not faster than for loop. maybe indexing can make it faster. Thanks
2 comentarios
Respuestas (1)
Matthew Eicholtz
el 8 de Mzo. de 2016
Disclaimer: I do not have R2016a, so I cannot test the linecirc function.
But, if you already tried arrayfun and it was slower, I think the for-loop is going to be your fastest bet. Is there a reason (other than speed) that you want to vectorize the code? Sometimes a for-loop is the way to go.
3 comentarios
Matthew Eicholtz
el 10 de Mzo. de 2016
Ah, I thought linecirc was exclusive to R2016a, but I see now that it is in earlier versions. However, it requires the Mapping Toolbox, which I do not have, so I still cannot test it.
Vectorization is not always the best route if you do not need it. Hence my question about your motives.
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!