Python的Matlab等价物';s";无”;
Matlab中是否有一个关键字大致相当于python中的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,
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);