How do I make this matlab code to plot multiple figures in subsequent 'while' iterations ?

3 views (last 30 days)
Hi. I'm a beginner in Matlab, I'm working on Image analysis and I think this code segment is supposed to display a plot in a figure everytime the if condition is met. I'M 100% sure that the if condition is met more than once but the program only gives a figure output the first time the if condition is met. It does not gives outputs when the if condition is met in subsequent iterations. It also does this wierd thing where it dsplays the first figure but without the plot in it and only displays the corresponding plot in the figure when the program has finished running. Like I said, I'm a beginner and I have a feeling that this is a minor problem but I just can't figure it out.Please any help will be appreciated. To be clear, I'm trying to plot different data in different figures whenever the if condition is met but it only plots the first time the if condition is met and does nothing in subsequent times.
  3 Comments
chris oj
chris oj on 18 Dec 2018
Thank you Sir. I used drawnow just now and it solved the problem of the program running to completion before plotting in the first figure. But I still can't see the subsequent figures (and their plots) that should be displayed when the if condition is met. Also how exactly do I use figure(), can you write the syntax for me? Thank you very much.
Omer Yasin Birey
Omer Yasin Birey on 18 Dec 2018
If you see only the first figure, probably the condition is getting met just once. Or maybe you are just seeing the last figure?

Sign in to comment.

Accepted Answer

Omer Yasin Birey
Omer Yasin Birey on 18 Dec 2018
Edited: Omer Yasin Birey on 18 Dec 2018
You should write figure() for every if statement to display corresponding image. So, just write at the begining of the statement like this. As far as I understand you want seperate images thats why I believe hold off should be inside the if.
if ref_image{f,3} == inactivity_time
figure
axis image;
disp(n)
imshow(originalImage_new);
hold on;
plot_pixels = ref_image{f,1};
plot(plot_pixels(:,1),plot_pixels(:,2),'*r');
hold off
end
  1 Comment
chris oj
chris oj on 18 Dec 2018
Wow. It works well now. I added draw now to display outputs immediately. Then I added to figure to display multiple outputs on different figures. Though there was something else I had to change in my code to make it work. Thanks guys. I really appreciate!

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!