2014-07-08 94 views
1

我是Matlab的新用戶界面,我有以下問題。 我宣佈一個滑塊控件和他的財產,我增加了一個listerner回調,並在後集事件處理程序(我認爲這是tecnically稱爲事件處理程序),你可以看到如下:Matlab滑塊將值傳遞給事件處理函數

function [] = HandlerSlide() 
%HANDLERSLIDE Summary of this function goes here 
% Detailed explanation goes here 
clf; 
due = '2'; 
hSlider = uicontrol(    ... 
    'Style','slider',    ... 
    'Callback',@(s,e) disp(['hello ',num2str(due),' asdad']),... 
    'Position', [400 30 200 20]  ... %[x,y, widht, height] 
); 
hListener = addlistener(hSlider,'Value','PostSet',@pippo); 


end 

function [] = pippo(s,e) 

disp('ciao'); 

end 

正如你所看到的,我在回調處理程序(匿名函數)中使用了參數「「。現在我想通過參數在「pippo」函數中使用,而不聲明它爲匿名函數。可能嗎? 換句話說我想申報「hListerner」是這樣的:

hListener = addlistener(hSlider,'Value','PostSet',@pippo{parameter1,parameter2, etc ...}); 

function[] = pippo(s,e, parameter1, parameter2, etc ...) 

身邊我怎麼能由「皮波」返回主值使用?

預先感謝您:d

回答

0

輸入手柄的功能被添加這樣的:

hListener = addlistener(hSlider,'Value','PostSet',{@pippo,parameter1,parameter2}); 

你必須要小心,然後在功能,爲「參數1」將不會是第一個輸入但第三個(在源和事件數據之後)。

+1

謝謝,但我試圖寫這個: hListener = addlistener(hSlider,'Value','PostSet',{@ pippo,'string'});鏈接到函數:function [] = pippo(s,e,var) disp(var); 結束 但我收到此錯誤:錯誤使用HandlerSlide(第48行) 找不到匹配簽名的方法'addlistener'。回調必須是一個功能句柄。 對不起,但我真的很新的聽衆機制:( – Mugna

+0

好吧,否則你可以把'pippo'函數內'HandlerSlide'之一。變量變成一個函數內的「全球」(不知道如何調用它,我沒有IT人員)。 – Wli

相關問題