help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lsim and butter for octave


From: Mario Storti
Subject: Re: lsim and butter for octave
Date: Thu, 24 Sep 1998 18:45:25 +0200

>>>>> On Thu, 24 Sep 98 18:12:32 , 
>>>>>      "Erich Schneider" <address@hidden> said:

> ................. < lines snipped here > ..............

> BTW, when trying to port these files there was a problem with the
> indexing of vectors. If I define a vector d = [3 4 5 6] I get this
> answer for d(d>1):

>> d=[3 4 5 6];
>> d(d>1)
> ans =
>   3  3  3  3

> The indexing mechanism seems to be buggy when the indexing vector only
> consists of ones. As soon as the vector contains a 0 it works as
> expected. If I want to get d(d>4) I get the right answer:

> oct:115>d(d>4)
> ans =
>   5  6

> A workaround is to use e.g. d(find(d>1)). However, since a lot of
> m-files use this indexing technique this is pretty annoying bug.

> Regards,
> Erich Schneider

You have to set `prefer_zero_one_indexing' to 1

> octave.bin:44> d=[3 4 5 6]
> d =
> 
>   3  4  5  6
> 
> octave.bin:45> d(d>1)
> ans =
> 
>   3  3  3  3
> 
> octave.bin:46> prefer_zero_one_indexing=1
> prefer_zero_one_indexing = 1
> octave.bin:47> d(d>1)
> ans =
> 
>   3  4  5  6
> 

>From the Octave's manual:

>    This special zero-one form of indexing leads to a conflict with the
> standard indexing operation.  For example, should the following
> statements
> 
>      a = [1, 2; 3, 4];
>      a ([1, 1], :)
> 
> return the original matrix, or the matrix formed by selecting the first
> row twice?  Although this conflict is not likely to arise very often in
> practice, you may select the behavior you prefer by setting the built-in
> variable `prefer_zero_one_indexing'.
> 
>  - Built-in Variable: prefer_zero_one_indexing
>      If the value of `prefer_zero_one_indexing' is nonzero, Octave will
>      perform zero-one style indexing when there is a conflict with the
>      normal indexing rules.  *Note Index Expressions::.  For example,
>      given a matrix
> 
>           a = [1, 2, 3, 4]
> 
>      with `prefer_zero_one_indexing' is set to nonzero, the expression
> 
>           a ([1, 1, 1, 1])
> 
>      results in the matrix `[ 1, 2, 3, 4 ]'.  If the value of
>      `prefer_zero_one_indexing' set to 0, the result would be the
>      matrix `[ 1, 1, 1, 1 ]'.
> 
>      In the first case, Octave is selecting each element corresponding
>      to a `1' in the index vector.  In the second, Octave is selecting
>      the first element multiple times.
> 
>      The default value for `prefer_zero_one_indexing' is 0.
> 

Regards,

Mario



reply via email to

[Prev in Thread] Current Thread [Next in Thread]