Mercurial > hg > octave-lyh
diff liboctave/chMatrix.cc @ 3189:bef7b73c0724
[project @ 1998-10-16 18:05:26 by jwe]
author | jwe |
---|---|
date | Fri, 16 Oct 1998 18:05:31 +0000 |
parents | af7ec9d3a5e6 |
children | 7aae2c3636a7 |
line wrap: on
line diff
--- a/liboctave/chMatrix.cc +++ b/liboctave/chMatrix.cc @@ -40,6 +40,17 @@ // charMatrix class. +charMatrix::charMatrix (char c) + : MArray2<char> () +{ + int nc = 1; + int nr = 1; + + resize (nr, nc); + + elem (0, 0) = c; +} + charMatrix::charMatrix (const char *s) : MArray2<char> () { @@ -176,6 +187,24 @@ return result; } +charMatrix +charMatrix::extract (int r1, int c1, int r2, int c2) const +{ + if (r1 > r2) { int tmp = r1; r1 = r2; r2 = tmp; } + if (c1 > c2) { int tmp = c1; c1 = c2; c2 = tmp; } + + int new_r = r2 - r1 + 1; + int new_c = c2 - c1 + 1; + + charMatrix result (new_r, new_c); + + for (int j = 0; j < new_c; j++) + for (int i = 0; i < new_r; i++) + result.elem (i, j) = elem (r1+i, c1+j); + + return result; +} + // XXX FIXME XXX -- these should probably return a boolMatrix type // instead, but that will have to wait for a future version...