bugs about rectangle and hold in MATLAB R2020a

3 views (last 30 days)
Recently I met a strange situation in MATLAB R2020a. To simplify the problem, I write an example script.
rectangle('Position',rand(1,4));
hold on;
plot(rand(),rand(),'o')
hold off;
Then, run the script for many times.
In MATLAB R2017a, the scipt plot a random rectangle and a random point each time you run the script, as expected.
But in MATLAB R2020a, the script add a random rectangle and a random point to the plot each time you run the script, as if the 'hold off' is uesless!
The problem is gone when I change the 'rectangle' function to another 'plot' function. So I think this may be a bug about 'rectangle' and 'hold' in R2020a.

Accepted Answer

Tanisha Gosain
Tanisha Gosain on 19 Jun 2020
This behaviour is expected and correct. I also tried reproducing your code in R2017a and got the same results as R2020a.
The rectangle function plots into the current axes without clearing existing content from the axes. Please refer to the description subsection in the documentation of rectangle function: rectangle documentation.
To open a separate plot every time you run your code you can do this:
close all;
rectangle('Position',rand(1,4));
hold on;
plot(rand(),rand(),'o')
hold off;
  1 Comment
Tony Liu
Tony Liu on 21 Jun 2020
You solved my problems at all! I will read the documentation carefully the next time. My sincere gratitude.

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!