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

1 回表示 (過去 30 日間)
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 件のコメント
chris oj
chris oj 2018 年 12 月 18 日
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 2018 年 12 月 18 日
If you see only the first figure, probably the condition is getting met just once. Or maybe you are just seeing the last figure?

サインインしてコメントする。

採用された回答

Omer Yasin Birey
Omer Yasin Birey 2018 年 12 月 18 日
編集済み: Omer Yasin Birey 2018 年 12 月 18 日
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 件のコメント
chris oj
chris oj 2018 年 12 月 18 日
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!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by