Matlab 如何在没有'的情况下终止函数;输出参数";“varargout”;未分配';错误?
我有一个参数和输出数量可变的函数,如果有其他参数,我希望它在某个点退出:Matlab 如何在没有'的情况下终止函数;输出参数";“varargout”;未分配';错误?,matlab,return,Matlab,Return,我有一个参数和输出数量可变的函数,如果有其他参数,我希望它在某个点退出: 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 out
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=my_函数(2,3)
可以正常工作,而[ab]=my_函数(2,3)
将导致错误
因此,您(至少)有两种选择:
[a b] = my_function(2)
a =
1
b =
optional output
[a b] = my_function(2,3)
a =
1
b =
[]