MATLAB Answers

0

How to optimize this code by avoiding nested for loops?

Asked by Canberk Suat Gurel on 12 Apr 2018
Latest activity Answered by Walter Roberson
on 12 Apr 2018
Hi all,
I have written the following code, whose Elapsed time is 32.427771 seconds.
t=1;
ObsX=[]; ObsY=[];
tic
for i = 3.53:0.0001:4.67
for j = -6.17:0.0001:-4.53
ObsX(t) = j;
ObsY(t) = i;
t=t+1;
end
end
toc
I have rectangular obstacle with the coordinates 3.53:4.67 and -6.17:-4.53 and the resolution is 0.0001. I am trying to store the X coordinates in array ObsX and Y coordinates in array ObsY.
Can you suggest way to improve the computation time? Thanks!

  0 Comments

Sign in to comment.

1 Answer

Answer by Walter Roberson
on 12 Apr 2018
 Accepted Answer

[X, Y] = ndgrid(3.53:0.0001:4.67, -6.17:0.0001:-4.53);
ObsX = X(:);
ObsY = Y(:);
Note: I did not check to be sure that the values are in the same order as you created. You might need meshgrid() instead of ndgrid()

  0 Comments

Sign in to comment.