How to increase the speed of this code?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Zhongruo Wang
el 8 de Abr. de 2016
Comentada: Roger Stafford
el 9 de Abr. de 2016
Here, I want to generate a 3D lattice points in the form of 3 column tuples. Here is my code:
% code
pts = [];
for i = 0.01:0.01:1
for j = 0.01:0.01:1
for k = 0.01:0.01:1
a = [i j k];
pts = [pts;a];
end
end
end
end
It is too slow when I run this script in the Matlab, is there any way to increase the speed of the operation? Or is there any way to decrease the number of the for loop?
Thanks
0 comentarios
Respuesta aceptada
Roger Stafford
el 8 de Abr. de 2016
Editada: Roger Stafford
el 8 de Abr. de 2016
Try 'ndgrid':
[X,Y,Z] = ndgrid(0.01:0.01:1);
pts = [Z(:),Y(:),X(:)]; %(Corrected)
0 comentarios
Más respuestas (1)
Azzi Abdelmalek
el 8 de Abr. de 2016
i = 0.01:0.01:0.1
j = 0.01:0.01:.1
k = 0.01:0.01:.1
[ii,jj,kk]=meshgrid(i,j,k)
out=[kk(:) ii(:) jj(:)]
1 comentario
Roger Stafford
el 9 de Abr. de 2016
@Azzi: I think these will not be in the same order requested by Zhongruo.
Ver también
Categorías
Más información sobre Function Creation 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!