作者ReiFu21 (ReiFu)
看板MATLAB
標題[討論] 請問這個程式碼哪裡有問題
時間Sun Jan 20 15:28:13 2013
請先複製以下程式碼 不好意思
clear all
for iii = 1:3
for kkk = 1:3
x=[iii 3*iii 2*iii 4*iii];
y=[1+iii 2+2*kkk 4+kkk sqrt(kkk)
iii+kkk/2 kkk/iii 6+iii sqrt(iii)];
bHH = figure;
set(bHH, 'visible', 'off');
bar(x',y');
saveas(bHH, ['Si' ,int2str(iii),int2str(kkk) ,'.png'] )
eval( [ 'bZwhat' ,int2str(iii),int2str(kkk) , '=', 'bHH',';' ])
end
end
for iii = 1:3
for kkk = 1:3
eval( [ 'bHH' , '=', 'bZwhat' ,int2str(iii),int2str(kkk) ,';' ])
bHH;
hold on;
plot(kkk*5,iii*2,'r*');
hold off;
saveas(bHH, ['SiGG' ,int2str(iii),int2str(kkk) ,'.png'] )
end
end
clear all
跑出來會有18個Si開頭的png檔 其中9個是SiGG開頭的
照理來說 SiGG開頭的圖檔應該都剛好有一個紅色星星在裡面
可是9個裡面只有1個有紅色星星 而且那一個裡面一次就跑出9個紅色星星
請問到底是哪裡出問題?該如何修改?
有請專業版友幫我解答 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.205.103.233
※ 編輯: ReiFu21 來自: 123.205.103.233 (01/20 15:31)
1F:推 sunev:檢查hold on 及hold off在迴圈中的位置。 01/20 16:13
2F:→ ReiFu21:我試過各種hold的位置變化 可是也都沒用 01/20 16:35
3F:推 sunev:你知道hold on是什麼意思嗎? 01/20 20:39
4F:→ ReiFu21:跟字面意思一樣 這個圖再堅持一下 我還想加個東西 01/20 21:41
5F:推 sunev:所以那張圖沒有hold off過啊? 01/20 22:37
6F:→ ReiFu21:喔喔 好像懂了 是說下半迴圈沒有figure 所以hold住的是上 01/20 22:41
7F:→ ReiFu21:半迴圈的最後一張圖 01/20 22:41
8F:→ ReiFu21:是這樣嗎? 那請問該如何叫出之前的圖令他為新figure?謝謝 01/20 22:43
9F:推 sunev:我覺得直接把hold拿掉就會達到你想要的效果 01/21 00:10
10F:→ ReiFu21:剛試過沒有用阿 因為我就是要覆蓋上一個星星 一定要用hold 01/21 00:15
11F:→ ReiFu21:17張圖都沒變 第18張剩一顆星星在中間 其他全白 01/21 00:19
12F:推 sunev:啊,我懂了。直接執行handle(你的bbh)並不會切到該figure。 01/21 00:47
13F:→ sunev:你要的是figure(bHH)或是set(0,'CurrentFigure',bHH) 01/21 00:48
14F:→ ReiFu21:成功了 感謝 就是在等這一行沒看過的東西XD 01/21 00:52