我有一个按钮组,里面有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
是的,我复制了名字,以防万一我没有输错。而我只是双重检查它 –
我想知道是否可能是从另一个私人调用私人方法的问题? –