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...