poster
2019-12-10, 16:49
Matlab中可以有默认参数吗?例如,在这里:
function wave(a, b, n, k, T, f, flag, fTrue=inline('0')) 我希望真正的解决方案是wave函数的可选参数。如果有可能,谁能证明这样做的正确方法?目前,我正在尝试上面发布的内容,然后得到:
??? Error: File: wave.m Line: 1 Column: 37 The expression to the left of the equals sign is not a valid target for an assignment.
回答:
没有像您尝试的那样直接执行此操作的方法。
通常的方法是使用“ varargs”并对照参数数量进行检查。就像是:
function f(arg1, arg2, arg3) if nargin < 3 arg3 = 'some default' end end 使用isempty等可以做一些更isempty事情,并且您可能想看一下Matlab isempty ,找到一些捆绑了这些东西的软件包。
您可能会看到varargin , nargchk等。它们对于这种事情很有用。 varargs允许您保留可变数量的最终参数,但这并不能解决某些/全部默认值的问题。
更多&回答... (https://stackoverflow.com/questions/795823)
function wave(a, b, n, k, T, f, flag, fTrue=inline('0')) 我希望真正的解决方案是wave函数的可选参数。如果有可能,谁能证明这样做的正确方法?目前,我正在尝试上面发布的内容,然后得到:
??? Error: File: wave.m Line: 1 Column: 37 The expression to the left of the equals sign is not a valid target for an assignment.
回答:
没有像您尝试的那样直接执行此操作的方法。
通常的方法是使用“ varargs”并对照参数数量进行检查。就像是:
function f(arg1, arg2, arg3) if nargin < 3 arg3 = 'some default' end end 使用isempty等可以做一些更isempty事情,并且您可能想看一下Matlab isempty ,找到一些捆绑了这些东西的软件包。
您可能会看到varargin , nargchk等。它们对于这种事情很有用。 varargs允许您保留可变数量的最终参数,但这并不能解决某些/全部默认值的问题。
更多&回答... (https://stackoverflow.com/questions/795823)