Search code examples
pythonmatlab

The Matlab equivalent of Python's "None"


Is there a keyword in Matlab that is roughly equivalent to None in python?

I am trying to use it to mark an optional argument to a function. I am translating the following Python code

def f(x,y=None):
    if y == None:
        return g(x)
    else:
        return h(x,y)

into Matlab

function rtrn = f(x,y)
    if y == []:
        rtrn = g(x);
    else
        rtrn = h(x,y);
    end;
end

As you can see currently I am using [] as None. Is there a better way to do this?


Solution

  • in your specific case. you may use nargin to determine how many input arguments here provided when calling the function.

    from the MATLAB documentation:

    The nargin and nargout functions enable you to determine how many input and output arguments a function is called with. You can then use conditional statements to perform different tasks depending on the number of arguments. For example,

    function c = testarg1(a, b) 
         if (nargin == 1)
             c = a .^ 2; 
         elseif (nargin == 2)
             c = a + b; 
         end
    

    Given a single input argument, this function squares the input value. Given two inputs, it adds them together.