关于matlab写函数问题 .m文件

我做的东西比较复杂,我就举一个简单的例子:
function [x y]=sy(a,b)
syms x y
e1=a+b-x;
e2=a-b-y;
[x]=solve(e1,x);
[y]=solve(e2,y);

if y<0
y=0;
else
y=y;
end
就这样,加上条件判断以后,就出错,如果没有后面的if条件判断,函数是没有问题的,在.m文件里面写的,哪位大侠帮忙高一下,这个是简单的一次方程,假如是高次方程出现多个根我是需要判断的,但是一旦判断就提示出错,哪位大侠帮忙!谢谢!

第1个回答  2009-09-19
“syms x y”表示x和y都是符号变量,是不能进行大小判断的。因此可以考虑将其转换成数。强制类型转换的函数有double。
Syntax
double(x)
Description
double(x) returns the double-precision
value for X. If X is already a double-precision
array, double has no effect.
第2个回答  2009-09-19
[x]=solve(e1,x);
这个解出来的是符号型变量。
你最好这样:
x=double(solve(e1,x))
强制改成数。本回答被提问者采纳
第3个回答  2009-09-19
你不能把条件写在函数体外吗
就这样调用[x,y]=sy(a,b);
if y<0
y=0;
else
y=y;
end
相似回答