help-octave
[Top][All Lists]
Advanced

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

## extracting rows from empty matrix

 From: John W. Eaton Subject: extracting rows from empty matrix Date: Tue, 14 Apr 1998 15:09:38 -0500 (CDT)

```On 11-Apr-1998, Stef Pillaert <address@hidden> wrote:

| it seems that it's not allowed to extract a row from an empty matrix, or am
| I wrong?
|
| octave:1> test=zeros(2,0)
| test = [](2x0)
| octave:2> A= test(1,:)
| error: invalid column index = 0
| error: evaluating index expression near line 2, column 1
|
| Would it be against the rules of working with empty matrices if this gave:
|
| A = [](1x0)
|
| or are actions like this too 'dangerous' (because what to do with something
| like test(1,0), would it be [](1x0) also?)
|
| (The reason I'm asking this, is that I do something like
|
| matrix_1(1,:)=[matrix_2(1,:),matrix_3(1,:)]
|
| where matrix_3 might sometimes be an [](2x0) matrix, and sometimes it is
| not.).
|
| Any comments?

It looks like a bug to me.  Please try the following patch.

Thanks,

jwe

Tue Apr 14 14:41:30 1998  John W. Eaton  <address@hidden>

* Array2-idx.h (index): Allow x = zeros (2, 0); x(1,:) to work.

*** liboctave/Array2-idx.h~     Mon Jan 19 16:23:37 1998
--- liboctave/Array2-idx.h      Tue Apr 14 14:59:58 1998
***************
*** 173,178 ****
--- 173,180 ----
retval.resize (0, 0);
else if (idx_j.is_colon_equiv (nc, 1))
retval.resize (0, nc);
+         else if (idx_i.is_colon_equiv (nr, 1))
+           retval.resize (0, m);
else
(*current_liboctave_error_handler) ("invalid row index = 0");
}
***************
*** 182,187 ****
--- 184,191 ----
retval.resize (0, 0);
else if (idx_i.is_colon_equiv (nr, 1))
retval.resize (nr, 0);
+         else if (idx_j.is_colon_equiv (nc, 1))
+           retval.resize (n, 0);
else
(*current_liboctave_error_handler) ("invalid column index = 0");
}

```

reply via email to

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