Я хочу написать функцию в Matlab для
и, если еще условие в MATLAB
Это то, что я написал.
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
Это приводит NaN
и не 0
из-за 0/0
. Я хочу, чтобы справиться с этой проблемой с помощью
if x==0.00 & y==0.00 f=0;
Почему это не if
заявления справиться с этим?
Может кто-нибудь, пожалуйста, скажите мне, как я могу это исправить.
Чтобы понять поведение, я рекомендую прочитать документацию, если внимательно. Ваше выражение 'x == 0.00 & y == 0.00' верно только в том случае, если все элементы отличны от нуля. Это означает, что ваш ввод содержит только нулевые элементы. – Daniel
Кроме того, ваш цикл 'for', кажется, ничего не добавляет, вы просто оцениваете одно и то же выражение 5 раз. – Adriaan