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
展开
 我来答
victoriajll
2012-06-22 · TA获得超过4884个赞
知道大有可为答主
回答量:654
采纳率:100%
帮助的人:1059万
展开全部
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
追问
我知道它的定义,不知道用法格式
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式