View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

4.0 | 1 rating Rate this file 4 Downloads (last 30 days) File Size: 1.76 KB File ID: #22319 Version: 1.2



Mark Ruzon (view profile)


04 Dec 2008 (Updated )

Create a larger array by expanding each element of an array into a subarray.

| Watch this File

File Information

REPLICATE is a companion to REPMAT, but instead of tiling a larger array with the input array, REPLICATE does the equivalent of calling REPMAT on each individual element and then tile the results together. It is faster than looping over each element. It supports 2D and 3D arrays.


This file inspired Expand and Revising Sunspot Numbers Since The Times Of Galileo.

MATLAB release MATLAB 7.5 (R2007b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (5)
04 Aug 2009 Russell

I used replicate.m to generate some padding on a string cell array.

AA = {'blank'};
myLabels = {'fish','beer'};
myLabels = [ myLabels (replicate (AA,1,3)) ]
myLabels =
'fish' 'beer' 'blank' 'blank' 'blank'

08 Dec 2008 Mark Ruzon

Mark Ruzon (view profile)

This is a more elegant and faster solution for the 2D case. The next version of the file will have this solution. Unfortunately, KRON gives 2D results when Y is 3D, so a different approach is needed in the 3D case.
A = reshape(1:6,[1 3 2]);
S = [2 2 2];

Comment only
06 Dec 2008 Jos (10584)

Jos (10584) (view profile)

Indexing with KRON is equally flexible:
% data
A = {12 {'yy' 'xxx'} ; 'aaa' rand(2)}
nr = 3 ;
nc = 5 ;
% engine
B = A(kron(reshape(1:numel(A),size(A)),ones([nr nc])))

Comment only
05 Dec 2008 Mark Ruzon

Mark Ruzon (view profile)

KRON works for floats and doubles but not integral types, structs, or cell arrays. KRON relies on multiplication, while REPLICATE uses only indexing, thus making it more flexible.

Comment only
05 Dec 2008 Jos (10584)

Jos (10584) (view profile)

Nice try, but KRON can handle the job perfectly, for instance, kron(A,ones([2, 3]))

Comment only
04 Dec 2008 1.1

Bug fix: renamed input parameter.

08 Dec 2008 1.2

Sped up 2D case using KRON. Thanks go to Jos.

Contact us