登录论坛

查看完整版本 : Matlab相当于Python的“无”


poster
2019-12-10, 16:49
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 。有一个更好的方法吗?


回答:
根据您的具体情况。您可以使用nargin来确定调用函数时此处提供了多少个输入参数。

从MATLAB文档中 (http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/bresuxt-1.html#br67di7-1) :

使用nargin和nargout函数,可以确定调用一个函数有多少个输入和输出参数。然后,您可以根据条件数量使用条件语句执行不同的任务。例如,

function c = testarg1(a, b) if (nargin == 1) c = a .^ 2; elseif (nargin == 2) c = a + b; end 给定单个输入参数,此函数将输入值平方。给定两个输入,它将它们加在一起。



更多&回答... (https://stackoverflow.com/questions/1737523)