八度处理类方法返回对象而不是数字



我有一个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

最新更新