is it possible to vectorise the following. I want to construct all pairs of integers (I,j) with i^2 + j^2 <= r^2, This includes negative i and j. Ideally I want a 2 by k matrix listing my pairs in lexicographic order. At the moment I use for loops.
1 view (last 30 days)
Show older comments
David Epstein
on 20 Jul 2018
Commented: David Epstein
on 20 Jul 2018
Given r, I want to construct all pairs of integers (i,j) with i^2 + j^2 <= r^2, This includes negative i and j. Ideally I want a k by 2 matrix listing my pairs in lexicographic order (either i_1 < i_2 or i_1==i_2 and j_1 < j_2). Can this be vectorised in Matlab? At the moment I use for loops, which doesn't matter, because I don't have to do it often. But I'm thinking a might need the fastest possible method for doing something similar in another program.
Accepted Answer
James Tursa
on 20 Jul 2018
One way:
[x,y] = meshgrid(-r:r,-r:r);
z = x.*x + y.*y <= r*r;
result = [x(z) y(z)];
More Answers (0)
See Also
Categories
Find more on Call Python from MATLAB 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!