gpt4 book ai didi

matlab - 如何在没有 'Output argument "varargout“未分配”错误的情况下终止函数?

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:47 24 4
gpt4 key购买 nike

我有一个参数和输出数量可变的函数,如果有额外的参数,我希望它在某个时刻退出:

function [out, varargout] = myfunction(a,varargin)

% do stuff
out = 1;

if nargin > 1
return
end

% do extra stuff if there is no additional argument
varargout{1} = 'optional output';

end

我得到了错误

Output argument "varargout" not assigned during call to "C:\...\myfunction"

我该如何解决这个问题?

最佳答案

这样的事情怎么样?

function varargout = my_function(a,varargin)

% do stuff
varargout{1} = 1;

if nargin > 1
if nargout > 1
varargout(2:nargout) = {[]};
end
return
end

% do extra stuff if there is no additional argument
varargout{2} = 'optional output';

end

测试:

[a b] = my_function(2)
a =
1
b =
optional output

[a b] = my_function(2,3)
a =
1
b =
[]

问题是,您不能调用一个输出多于它创建的输出的函数。因此,调用原始函数 a = my_function(2,3) 可以正常工作,而 [a b] = my_function(2,3) 将导致错误。

因此你(至少)有两个选择:

  1. 确保每次执行函数时输出和输入变量的数量匹配。

  2. 像我上面那样做。

关于matlab - 如何在没有 'Output argument "varargout“未分配”错误的情况下终止函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24023904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com