看板 MATLAB 關於我們 聯絡資訊
請先複製以下程式碼 不好意思 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)
sunev:檢查hold on 及hold off在迴圈中的位置。 01/20 16:13
ReiFu21:我試過各種hold的位置變化 可是也都沒用 01/20 16:35
sunev:你知道hold on是什麼意思嗎? 01/20 20:39
ReiFu21:跟字面意思一樣 這個圖再堅持一下 我還想加個東西 01/20 21:41
sunev:所以那張圖沒有hold off過啊? 01/20 22:37
ReiFu21:喔喔 好像懂了 是說下半迴圈沒有figure 所以hold住的是上 01/20 22:41
ReiFu21:半迴圈的最後一張圖 01/20 22:41
ReiFu21:是這樣嗎? 那請問該如何叫出之前的圖令他為新figure?謝謝 01/20 22:43
sunev:我覺得直接把hold拿掉就會達到你想要的效果 01/21 00:10
ReiFu21:剛試過沒有用阿 因為我就是要覆蓋上一個星星 一定要用hold 01/21 00:15
ReiFu21:17張圖都沒變 第18張剩一顆星星在中間 其他全白 01/21 00:19
sunev:啊,我懂了。直接執行handle(你的bbh)並不會切到該figure。 01/21 00:47
sunev:你要的是figure(bHH)或是set(0,'CurrentFigure',bHH) 01/21 00:48
ReiFu21:成功了 感謝 就是在等這一行沒看過的東西XD 01/21 00:52