1 function resu = repmat(df, varargin)
3 %% Copyright (C) 2009-2012 Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
5 %% This file is part of Octave.
7 %% Octave is free software; you can redistribute it and/or
8 %% modify it under the terms of the GNU General Public
9 %% License as published by the Free Software Foundation;
10 %% either version 2, or (at your option) any later version.
12 %% Octave is distributed in the hope that it will be useful,
13 %% but WITHOUT ANY WARRANTY; without even the implied
14 %% warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 %% PURPOSE. See the GNU General Public License for more
18 %% You should have received a copy of the GNU General Public
19 %% License along with Octave; see the file COPYING. If not,
20 %% write to the Free Software Foundation, 51 Franklin Street -
21 %% Fifth Floor, Boston, MA 02110-1301, USA.
24 %# $Id: repmat.m 9585 2012-02-05 15:32:46Z cdemills $
27 resu = df; idx = horzcat(varargin{:});
28 %# for the second dim, use either 1 either the 3rd one
30 if (length(dummy) > 2),
35 %# operate on first dim
37 resu = df_mapper(@repmat, df, [idx(1) 1]);
38 if (!isempty(df._name{1})),
39 resu._name{1} = feval(@repmat, df._name{1}, [idx(1) 1]);
40 resu._over{1} = feval(@repmat, df._over{1}, [idx(1) 1]);
42 resu._cnt(1) = resu._cnt(1) * idx(1);
46 for indi = 1:resu._cnt(2),
47 resu._rep{indi} = feval(@repmat, resu._rep{indi}, [1 dummy(2)]);
52 resu._ridx = feval(@repmat, resu._ridx, idx);
54 %# operate on second dim
55 if (length(idx) > 1 && idx(2) > 1),
56 resu._data = feval(@repmat, resu._data, [1 idx(2)]);
57 resu._name{2} = feval(@repmat, df._name{2}, [idx(2) 1]);
58 resu._over{2} = feval(@repmat, df._over{2}, [1 idx(2)]);
59 resu._type = feval(@repmat, df._type, [1 idx(2)]);
60 resu._cnt(2) = resu._cnt(2) * idx(2);
63 resu = df_thirddim(resu);