How to increase the speed of this code?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Zhongruo Wang
am 8 Apr. 2016
Kommentiert: Roger Stafford
am 9 Apr. 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 Kommentare
Akzeptierte Antwort
Roger Stafford
am 8 Apr. 2016
Bearbeitet: Roger Stafford
am 8 Apr. 2016
Try 'ndgrid':
[X,Y,Z] = ndgrid(0.01:0.01:1);
pts = [Z(:),Y(:),X(:)]; %(Corrected)
0 Kommentare
Weitere Antworten (1)
Azzi Abdelmalek
am 8 Apr. 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 Kommentar
Roger Stafford
am 9 Apr. 2016
@Azzi: I think these will not be in the same order requested by Zhongruo.
Siehe auch
Kategorien
Mehr zu Function Creation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!