help-octave
[Top][All Lists]

## problem with column specification in matrices

 From: John W. Eaton Subject: problem with column specification in matrices Date: Thu, 31 Oct 2002 13:18:06 -0600

```On 31-Oct-2002, Mike Miller <address@hidden> wrote:

| What's the deal with this?  In command 3, you can see that octave messes
| up when I do not include a comma between columns of the matrix.  A comma
| seems not to be required, so this seems like a bug.  It does it at least
| under 2.1.36.

You are hitting a variation of the problem described in the Numeric
Data types/Matrices section of the Octave manual:

Inside the square brackets that delimit a matrix expression, Octave
looks at the surrounding context to determine whether spaces and newline
characters should be converted into element and row separators, or
simply ignored, so commands like

[ linspace (1, 2) ]

and

a = [ 1 2
3 4 ]

will work.  However, some possible sources of confusion remain.  For
example, in the expression

[ 1 - 1 ]

the `-' is treated as a binary operator and the result is the scalar 0,
but in the expression

[ 1 -1 ]

the `-' is treated as a unary operator and the result is the vector `[
1, -1 ]'.

Given `a = 1', the expression

[ 1 a' ]

results in the single quote character `'' being treated as a transpose
operator and the result is the vector `[ 1, 1 ]', but the expression

[ 1 a ' ]

produces the error message

error: unterminated string constant

because to not do so would make it impossible to correctly parse the
valid expression

[ a 'foo' ]

In an expression like

[n (1+1./n).^n]

should that be interpreted as two expressions

[n, (1+1./n).^n]

or as one, with n indexed by the second expression (that's what you'd
get without the square brackets).

IMHO, it was bad design for Matlab to make whitespace magic inside the
square brackets.

jwe

-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------

```