MATLAB: How to fit a square and find the center point

I have a data plot look like in the picture:
I want to fit a square box enclosing maximum number of points and find the center of the box. You can see in the picture, the top and the right side seems to be the edge of the square. So the fit can assume the top and the right side as the two edges. How can I do this?

Best Answer

If your points are the rows of a matrix P, then
lowerleftCorner=min(P);
upperrightCorner=max(P);
center = lowerleftCorner/2 + upperrightCorner/2;
This will give you the corners of the tightest, non-rotated rectangle around the points. If you really do want a square and not a rectangle, you can enlarge one of the sides of the rectangle.