How to increase the speed of this code?

1 visualización (últimos 30 días)
Zhongruo Wang
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

Respuesta aceptada

Roger Stafford
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)

Más respuestas (1)

Azzi Abdelmalek
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
Roger Stafford el 9 de Abr. de 2016
@Azzi: I think these will not be in the same order requested by Zhongruo.

Iniciar sesión para comentar.

Categorías

Más información sobre Function Creation 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