如果缺少其中一个输入,我怎么能告诉Matlab运行?

时间:2015-10-20 22:39:48

标签: matlab input functional-programming

例如,我有一个将使用两个输入运行的函数。 但是,如果只输入一个输入,我希望Matlab运行不同的代码行(使用if-else语句)。 如果没有足够的输入,Matlab会在没有自动返回错误的情况下如何做到这一点?

1 个答案:

答案 0 :(得分:0)

你有很多可能性。您可以使用varargin,它会传递一个包含函数所有参数的单元格数组:

function f1(varargin)
switch numel(varargin)
    case 1
        disp(varargin{1})
    case 2
        disp(varargin{1})
        disp(varargin{2})
end
end

您还可以使用nargin检查输入参数的数量,如果不存在则不使用第二个输入参数。

function f2(x,y)
switch nargin
    case 1
        disp(x)
    case 2
        disp(x)
        disp(y)
end
end

第三种可能性是检查y是否存在。如果你没有通过论证,那就不存在了:

function f3(x,y)
if not(exist('y','var'))
        disp(x)
else
        disp(x)
        disp(y)
end
end