【发布时间】:2015-09-12 11:42:20
【问题描述】:
这是我写的。
function f=hamacher(x,y)
for i=1:5
if x==0.00 & y==0.00
f=0;
else
f=(x.*y)./(x+y-(x.*y));
end
end
end
如果我让
>> p=[0 0.5 1 0 0.75];
>> q=[0 0.2 0 0 0.8];
>> hamacher(p,q)
ans =
NaN 0.1667 0 NaN 0.6316
由于0/0,此结果为NaN 而不是0。我想通过if x==0.00 & y==0.00
f=0;
为什么if 语句不处理这个?
谁能告诉我如何纠正这个问题。
【问题讨论】:
-
要了解这种行为,我建议仔细阅读文档。您的表达式
x==0.00 & y==0.00仅在所有元素都不为零时才为真。这意味着您的输入仅包含零个元素。 -
另外,您的
for循环似乎没有添加任何内容,您只是在评估相同的表达式 5 次。
标签: matlab if-statement logical-operators