因为你不知道方程有几个根,所以如果你这样调用
[x1 x2] = equation_solve(x,y,z);
则表示方程有两个根,如果求出来只有一个根或者没有那么显然x1 和 x2 不能被都赋值
你改成这样调用就可以了
equation_solve(1,2,4);
function [x1, x2] = equation_solve(a,b,c)
delt = b*b - 4*a*c;
if delt < 0
'There is no answer!!!'
else if delt == 0
'There is only one answer '
x1 = (-a+sqrt(delt))/2;
ans = x1
else
'There are two answers!!'
x1 = (-a+sqrt(delt))/2;
x2 = (-a-sqrt(delt))/2;
ans = [x1 x2]
end
end
原有这个文件没有问题,单独保存,相当于你自己设定了一种算法。然后你另建一个.M文件,写入代码如[x1 x2] = equation_solve(1,2,1);系统执行这行代码时将去调用上面那一段代码,然后输出结果。注意文件命名保存时要一致。
matlab自学一本通p132页?