自定义类调用函数 - 输入参数太多

时间:2014-12-05 11:38:50

标签: matlab class

我对MATLAB课程的学习肯定与我以前的课程有所不同。以下是我使用的示例课程。

我用下面的行初始化我的课程,

myClass = ClassTest(3);

这很好。我遇到的问题是调用RunMain函数。

先致电

 myClass.RunMain(myClass)

我收到错误消息too many inputs

第二次致电

 myClass.RunMain(myClass, anything)

此通话有效。但是,我觉得很奇怪,我需要提供一个从未使用的第二个参数 - 只是看起来很乱。当然,我在这里遗漏了一些东西。

classdef ClassTest < handle

properties
   myNum; 
   myDate = datenum(date);
end

methods

    function ct = ClassTest(someNum)
        ct.myNum = someNum;            
    end

    % this function does not work when called
    %function RunMain(obj)            
    %    obj.myNum = obj.myNum * 2;
    %    disp(obj.myNum);
    %end

    % this works
    function RunMain(obj, anything)            
        obj.myNum = obj.myNum * 2;
        disp(obj.myNum);
    end

end

更新

我可以看到,当我调试时,anything参数与obj完全相同,即使obj.myNum已更改了值。

1 个答案:

答案 0 :(得分:2)

正确的语法,用于调用myClass是定义RunMain方法的类的对象的方法:

如果是function RunMain(obj),则是其中之一:

 myClass.RunMain()
 RunMain(myClass)

如果是function RunMain(obj, anything),则是其中之一:

 myClass.RunMain(anything)
 RunMain(myClass, anything)

您可以在此处找到有关语法的更多详细信息: http://de.mathworks.com/help/matlab/matlab_oop/ordinary-methods.html