Effacer les filtres
Effacer les filtres

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

4 vues (au cours des 30 derniers jours)
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 commentaires
chris oj
chris oj le 18 Déc 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 le 18 Déc 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?

Connectez-vous pour commenter.

Réponse acceptée

Omer Yasin Birey
Omer Yasin Birey le 18 Déc 2018
Modifié(e) : Omer Yasin Birey le 18 Déc 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 commentaire
chris oj
chris oj le 18 Déc 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!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by