matlab - 如何检查函数调用中是否提供了参数?

标签 matlab

假设我有一个函数,dummy,有 2 个参数。在函数调用中未提供时,参数可以具有默认值。但是我怎么知道没有提供参数?

我知道我可以像这样使用nargin

function dummy(arg1, arg2)
if nargin < 2
    arg2 = 0;
end
if nargin < 1
    arg1 = 0;
end
% function body

我想知道是否可以根据参数名称检查是否提供了参数?类似于 supplied(arg2) == false

我问这个是因为,有时我想在参数列表的前面添加新参数(因为它可能没有默认值),然后我必须更改所有 if nargin ...。如果我可以通过名称进行检查,则无需更改任何内容。

最佳答案

我总是这样做:

if ~exist('arg1','var')
  arg1=0;
end

正如@Andrey 所说,使用此解决方案,您可以更改函数参数的数量/顺序,而无需更改代码。 nargin 解决方案不是这种情况。

正如@yuk 所说,如果你想允许跳过参数,你可以这样做:

if ~exist('arg1','var') || isempty(arg1)
  arg1=arg1DefaultValue;
end

关于matlab - 如何检查函数调用中是否提供了参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590478/

相关文章:

arrays - 将矩阵乘以向量

matlab - 有没有办法将结构(:). a(:, 1)矢量化为数组(:, :)?

algorithm - 如何数值测试振荡曲线的稳定性?

MATLAB 将鼠标光标移动到特定坐标

matlab - Peekdata 只返回一个 channel

c++ - 在 matlab mex 文件中动态链接时枚举的 typeid 发生变化

java - java中的matlab矩阵函数

matlab - 比较两个数据集的过程

c++ - 非常大的查找表 C++ - 我可以避免输入整个内容吗?

matlab - 从 .mat 文件中删除变量