How to optimize this code by avoiding nested for loops?

1 view (last 30 days)
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!

Accepted Answer

Walter Roberson
Walter Roberson on 12 Apr 2018
[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()

More Answers (0)

Categories

Find more on Get Started with Optimization Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!