annotate scripts/general/repmat.m @ 4030:22bd65326ec1

[project @ 2002-08-09 18:58:13 by jwe]
author jwe
date Fri, 09 Aug 2002 19:00:16 +0000
parents 2f341412622f
children 9f7ef92b50b0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3914
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
1 ## Copyright (C) 2000 Paul Kienzle
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
2 ##
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
3 ## This file is part of Octave.
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
4 ##
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
7 ## the Free Software Foundation; either version 2, or (at your option)
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
8 ## any later version.
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
9 ##
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
13 ## General Public License for more details.
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
14 ##
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, write to the Free
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
17 ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
18 ## 02111-1307, USA.
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
19
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
20 ## -*- texinfo -*-
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
21 ## @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n})
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
22 ## @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}])
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
23 ## Form a block matrix of size @var{m} by @var{n}, with a copy of matrix
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
24 ## @var{A} as each element. If @var{n} is not specified, form an
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
25 ## @var{m} by @var{m} block matrix.
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
26 ## @end deftypefn
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
27
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
28 ## Author: Paul Kienzle <pkienzle@kienzle.powernet.co.uk>
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
29 ## Created: July 2000
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
30
3915
2f341412622f [project @ 2002-04-30 02:41:04 by jwe]
jwe
parents: 3914
diff changeset
31 function x = repmat (a, m, n)
2f341412622f [project @ 2002-04-30 02:41:04 by jwe]
jwe
parents: 3914
diff changeset
32
3914
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
33 if (nargin < 2 || nargin > 3)
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
34 usage ("repmat (a, m, n)");
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
35 endif
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
36
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
37 if (nargin == 2)
4030
22bd65326ec1 [project @ 2002-08-09 18:58:13 by jwe]
jwe
parents: 3915
diff changeset
38 if (isscalar (m))
3914
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
39 n = m;
4030
22bd65326ec1 [project @ 2002-08-09 18:58:13 by jwe]
jwe
parents: 3915
diff changeset
40 elseif (isvector (m) && length (m) == 2)
3914
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
41 n = m(2);
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
42 m = m(1);
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
43 else
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
44 error ("repmat: only builds 2D matrices")
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
45 endif
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
46 endif
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
47
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
48 if (isstr (a))
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
49 x = setstr (kron (ones (m, n), toascii (a)));
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
50 else
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
51 x = kron (ones (m, n), a);
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
52 endif
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
53
9eb96199e0f1 [project @ 2002-04-30 02:40:04 by jwe]
jwe
parents:
diff changeset
54 endfunction