2014-03-01 33 views
0

我已經創建了3軸的GUI:axes1,axes2,axes3。我有一個類SP到它的構造我通過三個軸如下:Matlab的GUI:設置當前軸創建一個新的數字

a=SP(handles.axes1,handles.axes2,handles.axes3) 

類看起來像

class SP < handles 
    properties 
     axes1 
     axes2 
     axes3 
    end 
    methods 
     function A=SP(axes1,axes2,axes3) 
      A.axes1=axes1; 
      A.axes2=axes2; 
      A.axes3=axes3; 
      axes(A.axes1); 
      rectangle('Position',[randn,randn,randn,randn]); 
      axes(A.axes2); 
      rectangle('Position',[randn,randn,randn,randn]); 
      axes(A.axes3); 
      rectangle('Position',[randn,randn,randn,randn]); 
     end 

我寫了一個定時器功能

function timerfcn1(~,~,A) 
    axes(A.axes1); 
    rectangle('Position',[randn,randn,randn,randn]); 
    axes(A.axes2); 
    rectangle('Position',[randn,randn,randn,randn]); 
    axes(A.axes3); 
    rectangle('Position',[randn,randn,randn,randn]); 
end 

我的問題是在初始化期間,即當我調用構造函數時,矩形繪製在GUI窗口中。但是,無論何時timerfcn1運行它創建一個新的圖形,並繪製該矩形。

我以前曾經使用過類似的東西,然後用它來工作。

+0

我無法運行此代碼!請修改代碼,以便我們可以運行編輯代碼 – Mohammad

+0

。但我如何顯示gui –

回答

0

很可能與處理您未顯示的部分代碼中的可見性(或缺少)有關。爲了保證矩形去你想要使用的軸,

rectangle('Position',[...],'Parent',A.axes1) 

在此之前,你還應該檢查手柄仍然存在使用

if ishandle(A.axes1) 
... 
end 
+0

這工作!非常感謝! –

相關問題