重载功能

Dan*_*ros 17 oop matlab overloading

有没有办法让两个函数具有相同的名称,但在Matlab中的同一个类中具有不同的参数?

And*_*ein 21

简而言之:不,这是不可能的.

但是,您可以模仿这种行为:

显然,由于Matlab是一种动态语言,你可以传递任何类型的参数并检查它们.

function foo(x)
    if isnumeric(x)
        disp(' Numeric behavior');
    elseif ischar(x)
        disp(' String behavior');
    end
end
Run Code Online (Sandbox Code Playgroud)

您还可以使用varargin,并检查参数的数量,并更改行为

function goo(varargin)
    if nargin == 2
        disp('2 arguments behavior');
    elseif nargin == 3
        disp('3 arguments behavior');   
    end
end
Run Code Online (Sandbox Code Playgroud)