目錄
指定回調的方法
回調函數語法
傳遞額外輸入參數
將回調定義為默認值
指定回調的方法
????????要使用回調屬性,將回調代碼賦予該屬性。使用以下技術之一:
-
引用函數執行的函數句柄。
-
包含函數句柄和其他參數的元胞數組
-
計算為有效 MATLAB??表達式的字符向量。MATLAB 在基礎工作區中計算該字符向量。
????????不建議將回調定義為字符向量。將函數指定為函數句柄的用法可以讓 MATLAB 為回調函數提供重要信息。可以參考下面的回調函數語法。
回調函數語法
圖形回調函數必須至少接受兩個輸入參數:
-
正在執行其回調的圖形對象的句柄。在您的回調函數中使用該句柄以引用回調對象。
-
事件數據結構,它對于某些回調可能是空的,或包含該對象的屬性說明中的具體信息。
無論何時執行作為特定觸發操作結果的回調函數,MATLAB 都會調用回調函數并傳遞兩個參數給該函數。
????????例如,為?plot?函數創建的線條定義一個名為?lineCallback?的回調函數。通過使用 MATLAB 路徑上的?lineCallback?函數,使用?@?運算符將函數句柄分配給?plot?創建的每個線條的?ButtonDownFcn?屬性。
plot(x,y,'ButtonDownFcn',@lineCallback)
????????定義接受兩個輸入參數的回調。使用第一個參數引用正在執行其回調的特定線條。使用該參數設置線條的 Color 屬性:
function lineCallback(src,~)src.Color = 'red';
end
????????第二個參數對 ButtonDownFcn 回調為空。~ 字符表示該參數未使用。
傳遞額外輸入參數
????????要定義回調函數的額外輸入參數,將參數添加到函數定義,同時保持默認參數和其他參數的正確順序:
function lineCallback(src,evt,arg1,arg2)src.Color = 'red';src.LineStyle = arg1;src.Marker = arg2;
end
????????將包含函數句柄和額外參數的元胞數組分配給屬性:
plot(x,y,'ButtonDownFcn',{@lineCallback,'--','*'})
????????可以使用匿名函數傳遞額外參數。例如:
plot(x,y,'ButtonDownFcn',...@(src,eventdata)lineCallback(src,eventdata,'--','*'))
將回調定義為默認值
????????可以將回調分配給特定對象的屬性或定義該類型所有對象的默認回調。
????????要定義所有線型對象的 ButtonDownFcn,在根級別設置默認值。
-
使用 groot 函數指定對象層次結構的根級別。
-
定義 MATLAB 路徑上的回調函數。
-
將引用該函數的函數句柄分配給 defaultLineButtonDownFcn。
set(groot,'defaultLineButtonDownFcn',@lineCallback)
????????默認值仍然分配給 MATLAB 會話。可以在 startup.m 文件中進行默認值分配。