[問題]請問callback中handle的指定問題 已回收

看板MATLAB作者 (原來是如此的平凡)時間13年前 (2011/04/04 13:54), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/1
我希望能夠畫五個圖 同時在五個圖的右邊各自有一個按鈕 當按鈕按下時 按鈕對應的圖改變背景顏色 程式碼如下 clear all for i=1:1:5 subplot(5,1,i); plot(1,1); a_h(i)=gca; p=get(a_h(i),'position'); set(a_h(i),'position',[p(1) p(2) (p(3)-p(1))*0.8 p(4)]); b_h(i)=uicontrol('style','pushbutton','unit','normalized','position',[p(3) p(2) 0.1 p(4)],... 'callback','set(a_h(i),''color'',[0.1 0.2 0.3])'); end 但是這樣的寫法遇到一個問題 因為迴圈執行結束後i=5 所以當callback觸發時set的handle都是a_h(5) 無論按下哪個按鈕都是改變第五個圖的背景色 但這並不是我要的結果 請問各位高手 程式碼該如何修改才可以達到我要的目的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.172.25

04/04 15:11, , 1F
都寫在迴圈內設定了 幹嘛還要設定pushbutton?
04/04 15:11, 1F

04/04 16:01, , 2F
迴圈內並沒有設定背景顏色喔
04/04 16:01, 2F

04/04 18:48, , 3F
['set(a_h(' num2str(i) '),''color'',[0.1 0.2 0.3])']
04/04 18:48, 3F

04/04 18:49, , 4F
解決方法...叫出b_h全部的callback看一下就知道了...
04/04 18:49, 4F

04/04 22:15, , 5F
感謝回答,下午後來有試出來,方法跟您回答的差不多
04/04 22:15, 5F
文章代碼(AID): #1DcLqTkE (MATLAB)