Почему выражение для h(theta)
ниже иногда возвращает 0
и иногда возвращает NaN
? h(theta)
содержит деление на ноль для theta = 0
и всегда должно возвращаться NaN
. Если я просто попрошу h(0)
, все будет хорошо.Почему Matlab неправильно возвращает 0 при оценке массива, но правильно возвращает NaN при оценке скаляра?
Однако, когда он оценивает ноль, содержащийся в многоэлементном массиве, он возвращает h = 0
, когда он должен вернуть NaN
. Но если специально оценить только элемент, который равен нулю, он возвращает NaN
, как и следовало ожидать.
>> theta = [0 1]
theta =
0 1
Первый элемент должен быть NaN
:
>> h = tan(theta)/(1+(tan(theta)/tan(2.*theta)))
h =
0 5.4220
При оценке нулевого элемента конкретно он работает правильно:
>> h = tan(theta(1))/(1+(tan(theta(1))/tan(2.*theta(1))))
h =
NaN
>> h = tan(theta(2))/(1+(tan(theta(2))/tan(2.*theta(2))))
h =
5.4220
Вы можете поместить '>>' в строки ввода для форматирования и лучшей читаемости. – percusse