polyfit hangs on inf input

Ben Abbott bpabbott at mac.com
Mon Nov 3 15:59:14 CST 2008


On Nov 3, 2008, at 3:05 PM, Dmitri A. Sergatskov wrote:

> On Mon, Nov 3, 2008 at 12:32 PM, Søren Hauberg <soren at hauberg.org>  
> wrote:
>> man, 03 11 2008 kl. 12:11 -0600, skrev Dmitri A. Sergatskov:
>>> The following code seems to hang octave 3.0.2 (on Fedora 9 x86_64):
>>>
>>> xx=linspace(-1,1,11);
>>> yy=2*linspace(-1,1,11);
>>> xx(6)=Inf;
>>> polyfit(xx',yy',1)
>>>
>>> The problem seems to be with underlying x\y code.
>>> I do not know WWMD in this case, but hanging does not
>>> seem to be appropriate. Either bailing out with an error,
>>> or ignoring with a warning seem to be better options.
>>
>> With 3.1.51+ I get
>>
>> octave:4> polyfit(xx',yy',1)
>> ans =
>>
>>  NaN   NaN
>
> This appears to be the (unintended?) result of the code:
>
> if (nargout > 2)
>    ## Normalized the x values.
>    mu = [mean(x), std(x)];
>    x = (x - mu(1)) / mu(2);
>  endif
>
> (std(x) returns NaN if x has Infs)
>
> x\y would still hang.
>
> Anyone can check what would matlab do in
> either case?

Dmitri, your example has nargout == 0, are you sure std(x) is being run?

Ben





More information about the Help-octave mailing list