MATLAB:调用内置函数时出现问题('addlistener',...)
MATLAB: Problem calling builtin('addlistener', ...)
在 Matlab (2017b) 中 class 我试图重载 addlistener
并且在使用 builtin
函数调用它时遇到问题。
我起初以为问题是由 class 实现引起的,但事实证明我可以用几行代码重现问题:
% This works ...
l = line(rand(2,1),rand(2,1));
addlistener(l,'Color','PostSet',@(h,e)disp(123)); % create listener
l.Color = rand(1,3); % trigger listener, '123' is displayed
% This does not ...
builtin('addlistener',l,'Color','PostSet',@(h,e)disp(456)); % ERROR, but why !?
在最后一行代码中使用 builtin
命令会引发以下错误:
First argument provided is not valid for addlistener. (Check its type or
validity)
我认为 builtin
的语法是正确的,并且认为这可能是一个 Matlab 错误,但也许有人可以证明我错了:-)
内置函数 addlistener
不支持类型 line
的对象,您需要为 line
重载的版本。但是你不能用 builtin
.
调用那个版本
您可能正在尝试调用方法的超类版本。为此,请按照 manual:
中的说明进行操作
addlistener@superclass(args)
在 Matlab (2017b) 中 class 我试图重载 addlistener
并且在使用 builtin
函数调用它时遇到问题。
我起初以为问题是由 class 实现引起的,但事实证明我可以用几行代码重现问题:
% This works ...
l = line(rand(2,1),rand(2,1));
addlistener(l,'Color','PostSet',@(h,e)disp(123)); % create listener
l.Color = rand(1,3); % trigger listener, '123' is displayed
% This does not ...
builtin('addlistener',l,'Color','PostSet',@(h,e)disp(456)); % ERROR, but why !?
在最后一行代码中使用 builtin
命令会引发以下错误:
First argument provided is not valid for addlistener. (Check its type or
validity)
我认为 builtin
的语法是正确的,并且认为这可能是一个 Matlab 错误,但也许有人可以证明我错了:-)
内置函数 addlistener
不支持类型 line
的对象,您需要为 line
重载的版本。但是你不能用 builtin
.
您可能正在尝试调用方法的超类版本。为此,请按照 manual:
中的说明进行操作addlistener@superclass(args)