>> [A,B] = ndgrid(-2:2);
>> [A(:),B(:)]
ans =
-2 -2
-1 -2
0 -2
1 -2
2 -2
-2 -1
-1 -1
0 -1
1 -1
2 -1
-2 0
-1 0
0 0
1 0
2 0
-2 1
-1 1
0 1
1 1
2 1
-2 2
-1 2
0 2
1 2
2 2
For a general solution, try this:
>> n = 3;
>> C = cell(1,n);
>> [C{:}] = ndgrid(-n:n);
>> C = cellfun(@(m)m(:),C,'uni',0);
>> [C{:}]
ans =
-3 -3 -3
-2 -3 -3
-1 -3 -3
0 -3 -3
1 -3 -3
2 -3 -3
3 -3 -3
-3 -2 -3
-2 -2 -3
-1 -2 -3
...
2 2 3
3 2 3
-3 3 3
-2 3 3
-1 3 3
0 3 3
1 3 3
2 3 3
3 3 3
Best Answer