Why does Matlab incorrectly return 0 when evaluating an array, but correctly return NaN when evaluating a scalar? -
why expression h(theta) below return 0 , return nan? h(theta) contains division 0 theta = 0 , should return nan. if ask h(0), works fine.
however, when evaluates 0 contained in multi-element array, returns h = 0 when should return nan. if evaluating element zero, returns nan should.
>> theta = [0 1] theta = 0 1 the first element should nan:
>> h = tan(theta)/(1+(tan(theta)/tan(2.*theta))) h = 0 5.4220 when evaluating 0 element works correctly:
>> 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
you need element-wise division ./ instead of / desired result. called right array division.
>> h = tan(theta)./(1+(tan(theta)./tan(2.*theta))) h = nan 5.4220
Comments
Post a Comment