【发布时间】:2013-11-09 07:33:52
【问题描述】:
我有以下情况。在 myClass.m 我已经定义了
classdef myClass
...
methods
function y = foo(this, x)
...
end
end
end
然后我执行
obj = myClass();
nargin(@obj.foo)
并得到-1,而我期望为1。该函数仍然只接受一个参数。 我实际上想将句柄传递给另一个检查参数数量的函数(我无权访问),并且我希望检查 nargin(f)==1 成功。有没有办法做到这一点?
PS
我知道,如果我将方法定义为静态,我将通过调用 nargin(@(x)Test.foo) 得到正确的结果,但该方法会访问类变量。
【问题讨论】:
-
为什么会遇到减号? “减号表示最后一个输入参数是 varargin。mynewplot 函数可以接受不确定数量的附加输入参数。” - ch.mathworks.com/help/matlab/ref/nargin.html
标签: matlab oop function-handle