matlab中,我不会用varargout,不知道下面的函数为什么不能执行?
functionvarargout=add_my(b,c,d)%add_my输入参数的相加%输入加数b、c、d%输出varargout为输入参数的运算结果%2012年6月...
function varargout=add_my(b,c,d)
% add_my 输入参数的相加
% 输入 加数b、c、d
% 输出 varargout为输入参数的运算结果
% 2012年6月22日编
if nargout==1
varargout={a1};
a1 = b + c + d;
elseif nargout==2
varargout={a1,a2};
a1 = b + c + d;
a2 = b + c;
elseif nargout==3
varargout={a1,a2,a3};
a1 = b + c + d;
a2 = b + c;
a3 = b + d;
else
error('wrong')
end 展开
% add_my 输入参数的相加
% 输入 加数b、c、d
% 输出 varargout为输入参数的运算结果
% 2012年6月22日编
if nargout==1
varargout={a1};
a1 = b + c + d;
elseif nargout==2
varargout={a1,a2};
a1 = b + c + d;
a2 = b + c;
elseif nargout==3
varargout={a1,a2,a3};
a1 = b + c + d;
a2 = b + c;
a3 = b + d;
else
error('wrong')
end 展开
展开全部
varargout是一个元胞数组,用来存储输出参数。利用它的好处是输出参数的个数可变,可以根据情况改变输出参数的个数
你的程序有点问题,修改如下:
function varargout=add_my(b,c,d)
% add_my 输入参数的相加
% 输入 加数b、c、d
% 输出 varargout为输入参数的运算结果
% 2012年6月22日编
if nargout==1
a1 = b + c + d;
varargout={a1};
elseif nargout==2
a1 = b + c + d;
a2 = b + c;
varargout={a1,a2};
elseif nargout==3
a1 = b + c + d;
a2 = b + c;
a3 = b + d;
varargout={a1,a2,a3};
else
error('wrong')
end
>> a=add_my(1,2,3)
a =
6
>> [a,b]=add_my(1,2,3)
a =
6
b =
3
>> [a,b,c]=add_my(1,2,3)
a =
6
b =
3
c =
4
>> add_my(1,2,3)
??? Error using ==> add_my at 22
wrong
你的程序有点问题,修改如下:
function varargout=add_my(b,c,d)
% add_my 输入参数的相加
% 输入 加数b、c、d
% 输出 varargout为输入参数的运算结果
% 2012年6月22日编
if nargout==1
a1 = b + c + d;
varargout={a1};
elseif nargout==2
a1 = b + c + d;
a2 = b + c;
varargout={a1,a2};
elseif nargout==3
a1 = b + c + d;
a2 = b + c;
a3 = b + d;
varargout={a1,a2,a3};
else
error('wrong')
end
>> a=add_my(1,2,3)
a =
6
>> [a,b]=add_my(1,2,3)
a =
6
b =
3
>> [a,b,c]=add_my(1,2,3)
a =
6
b =
3
c =
4
>> add_my(1,2,3)
??? Error using ==> add_my at 22
wrong
追问
我知道它的定义,不知道用法格式
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询