Clear Filters
Clear Filters

How to perform repmat function to repeat rows of a matrix

46 views (last 30 days)
A=[1,0,0,0,1;2,0,0,0,2;3,0,0,0,3]
I would like to repeat each row for n times and get output something like this when n is 2:
output=[1,0,0,0,1;1,0,0,0,1;2,0,0,0,2;2,0,0,0,2;3,0,0,0,3;3,0,0,0,3]

Accepted Answer

Bruno Luong
Bruno Luong on 19 Aug 2022
A=[1,0,0,0,1;2,0,0,0,2;3,0,0,0,3]
A = 3×5
1 0 0 0 1 2 0 0 0 2 3 0 0 0 3
A(repmat(1:end,2,1),:)
ans = 6×5
1 0 0 0 1 1 0 0 0 1 2 0 0 0 2 2 0 0 0 2 3 0 0 0 3 3 0 0 0 3

More Answers (5)

Torsten
Torsten on 19 Aug 2022
Edited: Torsten on 19 Aug 2022
B = repelem(A,2,1)
  2 Comments
Zee
Zee on 19 Aug 2022
Hi, cannot use this function since it got introduced in 2015 version, I am using 2011 version. Thanks.
Torsten
Torsten on 19 Aug 2022
Edited: Torsten on 19 Aug 2022
A = [1,0,0,0,1;2,0,0,0,2;3,0,0,0,3];
n = 2;
B = [];
for i = 1:size(A,1)
B = [B;repmat(A(i,:),n,1)];
end
B
B = 6×5
1 0 0 0 1 1 0 0 0 1 2 0 0 0 2 2 0 0 0 2 3 0 0 0 3 3 0 0 0 3

Sign in to comment.


Bruno Luong
Bruno Luong on 19 Aug 2022
A=[1,0,0,0,1;2,0,0,0,2;3,0,0,0,3]
A = 3×5
1 0 0 0 1 2 0 0 0 2 3 0 0 0 3
reshape(repmat(reshape(A,1,1,[]),2,1,1),[],size(A,2))
ans = 6×5
1 0 0 0 1 1 0 0 0 1 2 0 0 0 2 2 0 0 0 2 3 0 0 0 3 3 0 0 0 3

Bruno Luong
Bruno Luong on 19 Aug 2022
n = 2;
A(ceil((1:n*end)/n),:)

Bruno Luong
Bruno Luong on 19 Aug 2022
n = 2;
A(kron(1:end,ones(1,n)),:)

Bruno Luong
Bruno Luong on 19 Aug 2022
n = 2;
kron(A,ones(n,1))

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Products


Release

R2011b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!