Given a set of 4 vertices defined by vectors X and Y, return true if the vertices form a rectangle and false otherwise.
X and Y are not necessarily in sorted order, but you may assume that X(i) is paired with Y(i).
Also, if computing distances in your solution (e.g. with pdist), it is recommended that you round to three decimal places.
Solution Stats
Problem Comments
5 Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers20
Suggested Problems
-
183 Solvers
-
403 Solvers
-
446 Solvers
-
Fix the last element of a cell array
1751 Solvers
-
1011 Solvers
More from this Author43
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
Most current solutions will fail if the four points fall on a circle but don't form a rectangle. Try adding X=[0 sqrt(2)/2 sqrt(2)/2 0]', Y=[1 sqrt(2)/2 -sqrt(2)/2 -1]'
Jon, I updated the test suite to include parallelograms that are not rectangles. While it does not include the specific example you gave, I think it takes care of the problem. Let me know if you think there is still an issue.
Matt, Jon's example can 'kill' some approaches, that check for trapezoids. X=[-1 -0.5 0.5 1]; Y=[0 sqrt(3)/2 sqrt(3)/2 0]; can eliminate those solutions which check only for 3 unique distances between points. It would be beneficial, to try some trapezoids, as well as kites or rhombi. Anyway, great problem!
Ah yes, I agree. Test suite updated again.
I don't know why there is a loop in the test cases when the rng is set to a particular value. randi will generate the same values again and again.
Doesn't make much sense.