Overloading functions

前端 未结 2 531
滥情空心
滥情空心 2020-12-03 01:38

Is there a way to have two functions with the same name but with different arguments inside the same class in Matlab?

2条回答
  •  爱一瞬间的悲伤
    2020-12-03 02:23

    In short : No, it is not possible.

    However, You can mimic this kind of behavior:

    Obviously, since Matlab is a dynamic language, you can pass arguments of any type and check them.

    function foo(x)
        if isnumeric(x)
            disp(' Numeric behavior');
        elseif ischar(x)
            disp(' String behavior');
        end
    end
    

    You can also use varargin, and check the number of parameters, and change the behavior

    function goo(varargin)
        if nargin == 2
            disp('2 arguments behavior');
        elseif nargin == 3
            disp('3 arguments behavior');   
        end
    end
    

提交回复
热议问题