def repmat(a, m, n):
a = asanyarray(a)<EOL>ndim = a.ndim<EOL>if ndim == <NUM_LIT:0>:<EOL><INDENT>origrows, origcols = (<NUM_LIT:1>, <NUM_LIT:1>)<EOL><DEDENT>elif ndim == <NUM_LIT:1>:<EOL><INDENT>origrows, origcols = (<NUM_LIT:1>, a.shape[<NUM_LIT:0>])<EOL><DEDENT>else:<EOL><INDENT>origrows, origcols = a.shape<EOL><DEDENT>rows = origrows * m<EOL>cols = origcols * n<EOL>c = a.reshape(<NUM_LIT:1>, a.size).repeat(m, <NUM_LIT:0>).reshape(rows, origcols).repeat(n, <NUM_LIT:0>)<EOL>return c.reshape(rows, cols)<EOL>
Repeat a 0-D to 2-D array or matrix MxN times.

Parameters
----------
a : array_like
    The array or matrix to be repeated.
m, n : int
    The number of times `a` is repeated along the first and second axes.

Returns
-------
out : ndarray
    The result of repeating `a`.

Examples
--------
>>> import numpy.matlib
>>> a0 = np.array(1)
>>> np.matlib.repmat(a0, 2, 3)
array([[1, 1, 1],
       [1, 1, 1]])

>>> a1 = np.arange(4)
>>> np.matlib.repmat(a1, 2, 2)
array([[0, 1, 2, 3, 0, 1, 2, 3],
       [0, 1, 2, 3, 0, 1, 2, 3]])

>>> a2 = np.asmatrix(np.arange(6).reshape(2, 3))
>>> np.matlib.repmat(a2, 2, 3)
matrix([[0, 1, 2, 0, 1, 2, 0, 1, 2],
        [3, 4, 5, 3, 4, 5, 3, 4, 5],
        [0, 1, 2, 0, 1, 2, 0, 1, 2],
        [3, 4, 5, 3, 4, 5, 3, 4, 5]])