MATLAB: Best way to create a matrix of points

matrix manipulation

Hello
I have a matrix that contains rectangles(squares in this case), for example:
A=[-5 -4.5 1.5 2; -5 -4.5 2 2.5; -5 -4.5 2.5 3; -4.5 -4 1.5 2; -4.5 -4 2 2.5; -4.5 -4 2.5 3];
for i=1:6
rectangle('Position',[A(i,1) A(i,3) 0.5 0.5]);
hold on;
end
hold on;
axis([-10 10 -10 10])
Each row contains ( ) coordinates.
So in this case the result matrix should contain 12 rows, each represents 1 point, like:
-5 1.5
-5 2
-5 2.5
-5 3
-4.5 1.5
-4.5 2
-4.5 2.5
-4.5 3
-4 1.5
-4 2
-4 2.5
-4 3
The rectangles are not guranteed to form another rectangle, a more realistic set of rectangles:
rect.GIF

Best Answer

A=[-5 -4.5 1.5 2; -5 -4.5 2 2.5; -5 -4.5 2.5 3; -4.5 -4 1.5 2; -4.5 -4 2 2.5; -4.5 -4 2.5 3];
points = unique([A(:, [1, 3]); A(:, [1, 4]); A(:, [2, 3]); A(:, [2, 4])], 'rows')
is the simplest though posibly not the most efficient.
edit: this may be marginally more efficient, though more obscure:
points = unique(reshape(A(:, [1 1 2 2 3 4 3 4])), 'rows')