将逻辑运算

时间:2016-06-14 18:08:24

标签: matlab

我在Matlab中定义了一个多变量函数:

function f=test(x,y)

if x>=0 && y>0
 f=x+y;
end

if x<0 && y>0
 f=-x+y;
end

end

现在我想将函数集成到 x 上,但 y 固定为1,所以在命令窗口中我写道:

f=@(x) test(x,1);
integrate(f,-1,1);

然后我收到一个错误说:

Operands to the || and && operators must be convertible to logical scalar values.

Error in test (line 3)
if x>=0 && y>0

如果我更换所有&amp;&amp;由&amp;如果其他一切没有改变,还有另一个错误:

Output argument "f" (and maybe others) not assigned during call to "test".

Error in @(x)test(x,1)

我很感激,如果有人可以帮助我在数字上做到这一点。

顺便说一句,我注意到这里出现的问题似乎是独特的,当在函数的定义中有一些逻辑运算时。如果我定义了

function f=test(x,y)
    f=x+y;
end

并按以前的方式进行积分

f=@(x) test(x,1);
integral(f,-1,1)

它正确返回2.

1 个答案:

答案 0 :(得分:0)

试试这个:

function f=test(x,y)
f = (x>=0).*(y>0).*(x+y) - (x<0).*(y>0).*(x+y);
end