我有一个班级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
个对象。
我对Octave / Matlab很新,所以我的问题可能是基本误解的结果,但是我无法找到答案。任何帮助将不胜感激。
答案 0 :(得分:2)
对象方法的第一个输入是其自身的实例,因此在您的示例代码中vec
是您的TestClass
对象。由于Octave没有太多输入参数的错误(至少对于类而言),因此您不会收到错误。
要解决此问题,请将自输入添加到方法声明中:
classdef TestClass < handle
methods
function o = doNothing(self, vec)
o = vec;
end
end
end
哪些功能如预期:
>> A = TestClass;
>> A.doNothing(12)
ans = 12