How to perform repmat function to repeat rows of a matrix

60 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))

Tags

Products


Release

R2011b

Community Treasure Hunt

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

Start Hunting!