# 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;endhold 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:

#### 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')``