help-octave
[Top][All Lists]
Advanced

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

parsing problem. Bug?


From: John W. Eaton
Subject: parsing problem. Bug?
Date: Wed, 28 Jan 1998 15:13:11 -0600

On 28-Jan-1998, Andy Adler <address@hidden> wrote:

| I've had the following parsing problem. I get the same
| error in octave 2.0.9 and 2.1.2.
| 
| if you try to define a vector
|   
|   octave:69> a=b=c=d=1;
|   octave:70> [a b (c+d)]
|   error: invalid vector index = 2
|   error: evaluating index expression near line 70, column 5

This is parsed as

      a         b (c+d)
  variable  index-expression


| If you bracket the b the answer is wrong
|   octave:70> [a (b) (c+d)]
|   ans = 1  2

This is parsed as

       a (b)              (c+d)
  index-expression  binary-expression

| You need to give everything brackets
|   octave:71> [(a) (b) (c+d)]
|   ans =
|     1  1  2

You could just write `[a b c+d]', or use a temporary variable:

  d = c+b;
  [a b d]

or, as you say, use commas where they are needed.

| I realize that the right_thing_to_do (tm) is use commas to
| separate elements, but I think this behaviour is a bug.
| 
| PS. In matlab you get
|   >> [a b (c+d)]
|   ans = 1     1     2

If there is a bug, I think it is in the way that Matlab treats
whitespace differently in different contexts.

If you want the Matlab behavior, you can set the variable
`whitespace_in_literal_matrix' to "traditional".

jwe



reply via email to

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