matlab中运用function为什么输出只有一个值

如题所述

如果你使用my(c,d),那么系统默认只返回第一个值,也就是a。
如果你需要返回a,b,那么必须指明是[a,b]=my(c,d)
----------------
你下面那个图,c没有定义,因为你第一行定义语句里面,没出现c,只出现了矩阵x。所有你后续函数表达式里面出现的参数,都要在第一行定义
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-03
这是默认输出。
如果你要输出两个值,就必须这样用:
[a,b] = my(12,10)

你的另一个程序fun.m有些错误,语句顺序要修改一下:
function X=fun(a,b)
c = a+b;
d = a*b;
X = [c;d];

这样你用命令
X = fun(12,10)
就不会出错了本回答被提问者采纳
第2个回答  2013-05-25
你使用[x,y]=my(12,10)
就会返回两个值了追问

如果输出的是一个矩阵呢?

怎么就不行了

追答

返回值是矩阵是可行的,错误的原因是你在使用x前没有定义c,你应该把x=[c;d]放在倒数第二句,就是end前面

相似回答