我有一个TestClass
:
classdef TestClass < handle
methods
function o = doNothing(vec)
o = vec;
end
end
end
我运行这样的doNothing
方法:
test = TestClass;
x = test.doNothing([1, 0, 1]);
执行此代码后,我希望x
包含[1, 0, 1]
,但由于某些原因,doNothing
返回TestClass
对象。
我是八度/matlab的新手,所以我的问题可能是基本的误解,但是我找不到答案。任何帮助将不胜感激。
对象方法的第一个输入是本身的实例,因此在示例代码中,vec
是您的TestClass
对象。由于Octave在输入参数太多(至少对于课堂上(上没有错误,因此您不会收到错误。
要解决此问题,请将自输入添加到您的方法声明中:
classdef TestClass < handle
methods
function o = doNothing(self, vec)
o = vec;
end
end
end
哪些功能如预期的:
>> A = TestClass;
>> A.doNothing(12)
ans = 12