Python的Matlab等价物';s";无”;

Python的Matlab等价物';s";无”;,python,matlab,Python,Matlab,Matlab中是否有一个关键字大致相当于python中的None 我试图用它来标记函数的可选参数。我正在翻译以下Python代码 def f(x,y=None): if y == None: return g(x) else: return h(x,y) 进入Matlab function rtrn = f(x,y) if y == []: rtrn = g(x); else rtrn = h(x,

Matlab中是否有一个关键字大致相当于python中的
None

我试图用它来标记函数的可选参数。我正在翻译以下Python代码

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

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

正如您所看到的,目前我使用的是
[]
作为
None
。有更好的方法吗?

NaN
虽然不是等效的,但通常也有类似的用途

在您的特定情况下。您可以使用
nargin
来确定调用函数时此处提供了多少输入参数

从:

nargin和nargout函数 使您能够确定输入的数量 函数的输出参数是 打电话给我。然后您可以使用 要执行的条件语句 不同的任务取决于 参数的数量。比如说,

给定一个输入参数,这个 函数将输入值平方。 给定两个输入,它将它们相加 一起


nargin
绝对是最简单的方法。此外,使用验证输入参数的数量通常也是一种良好的做法:

函数e=testFunc(a,b,c,d) 错误(nargchk(2,4,nargin,'struct')); %设置默认值
如果Nargin你想在Matlab中做什么?我还想在if循环中添加另一个else步骤,以捕获使用错误数量的输入参数调用函数的情况,然后你可以将其标记为error,引入了一个新函数,该函数取代了上文中不推荐使用的
nargchk
+
error
function c = testarg1(a, b) 
     if (nargin == 1)
         c = a .^ 2; 
     elseif (nargin == 2)
         c = a + b; 
     end
Not enough input arguments.
narginchk(2,4);