我有一個按鈕組,裏面有3個單選按鈕,還有一個顯示部分。MATLAB回調函數:未定義函數?
我想要的效果是,一旦選擇一個單選按鈕,顯示部分也會改變。
我實現它使用一個類,並創建這些組件時添加SelectionChangedFcn
:
app.ControlButtonGroup.SelectionChangedFcn = {@controlBtnGroupSelectionChanged, app}
我在其中createComponents.m功能文件保存在同一文件中定義的函數controlBtnGroupSelectionChanged(obj, eventData, app)
。
但是,當我點擊不同的無線電,錯誤消息如下:
未定義的函數「controlBtnGroupSelectionChanged」的輸入類型的 參數「matlab.ui.container.ButtonGroup」。錯誤而 評估的ButtonGroup SelectionChangedFcn
我也聲明controlBtnGroupSelectionChanged
功能在我的課的私有方法。
的controlBtnGroupSelectionChanged函數爲:
function controlBtnGroupSelectionChanged(obj, eventData, app)
% Update display section as the radio button in control section is changed
%new = app.ControlButtonGroup.NewValue;
new = obj.SelectedObject.String;
switch new
case 'Transfer Path'
% display the transfer path
imagesc(app.curImage,'Parent',app.DisplayPath);
app.DisplayPath.Visible = 'off';
case 'Store'
% display the store text
text(curStore,'Parent',app.DisplayPath);
case 'Mill'
% Display the Mill text
text(curMill,'Parent',app.DisplayPath);
end
end
的是,在該類中定義的部分是如:
methods (Access = private)
% Create UIFigure and components
createComponents(app);
% Callback function for Control Button Group Selection Changed
controlBtnGroupSelectionChanged(obj, eventData, app);
end
而在的createComponents功能涉及於該部件:
app.ControlButtonGroup = uibuttongroup(app.UIFigure);
app.ControlButtonGroup.Title = 'Control';
app.ControlButtonGroup.FontSize = 16;
app.ControlButtonGroup.Units = 'Normalized';
app.ControlButtonGroup.Position = [0.45 0.75 0.45 0.2];
app.ControlButtonGroup.SelectionChangedFcn = {@controlBtnGroupSelectionChanged,app};
爲什麼說我的函數是不確定的?
更新: 我已經通過一些其他演示,並更改回調爲app.ControlButtonGroup.SelectionChangedFcn = @(h,e)controlBtnGroupSelectionChanged(app)。並定義(也原型)它就像controlBtnGroupSelectionChanged(應用程序)。它的作品。所以我想這個問題應該是關於參數的數量,但我仍然沒有找到有關這方面的詳細信息。任何提示都表示讚賞!
您確定您的函數名沒有錯字嗎?另外它會有助於您發佈實際文件。 – Suever
是的,我複製了名字,以防萬一我沒有輸錯。而我只是雙重檢查它 –
我想知道是否可能是從另一個私人調用私人方法的問題? –