我在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.
答案 0 :(得分:0)
试试这个:
function f=test(x,y)
f = (x>=0).*(y>0).*(x+y) - (x<0).*(y>0).*(x+y);
end