检查Matlab中没有输入参数为空

时间:2017-08-09 15:48:41

标签: matlab

我有一个带有大约10个输入参数的函数。在数据处理之后,这些参数可以是空数组/向量。在这种情况下,我想将每个输出设置为0并从函数中退出(返回)。

如何进行检查以确保函数的所有输入都是非空的,而不必输入每个输入。我想要像。

function [outputs1and2] = myfunct(many_arguments)
if isempty(any_input_argument)
    out1 = 0;
    out2 = 0;
    return
end
out1 = some_math;
out2 = more_math;
end

1 个答案:

答案 0 :(得分:3)

您可以使用varargin初始保存cell array中的所有输入参数,您可以使用cellfun轻松检查:

function [out1, out2] = myfunct(varargin)
  if any(cellfun(@isempty, varargin))
    out1 = 0;
    out2 = 0;
    return
  end
  % ...further processing
end

当你需要使用输入参数进行后续处理时,你可以像varargin那样从中提取它:

in1 = varargin{1};  % Get first input argument

此外,虽然它可能比您正在寻找的内容更多,但您也可以查看inputParser objects以验证函数的输入参数。