Effacer les filtres
Effacer les filtres

How to perform repmat function to repeat rows of a matrix

34 vues (au cours des 30 derniers jours)
Zee
Zee le 19 Août 2022
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]

Réponse acceptée

Bruno Luong
Bruno Luong le 19 Août 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

Plus de réponses (5)

Torsten
Torsten le 19 Août 2022
Modifié(e) : Torsten le 19 Août 2022
B = repelem(A,2,1)
  2 commentaires
Zee
Zee le 19 Août 2022
Hi, cannot use this function since it got introduced in 2015 version, I am using 2011 version. Thanks.
Torsten
Torsten le 19 Août 2022
Modifié(e) : Torsten le 19 Août 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

Connectez-vous pour commenter.


Bruno Luong
Bruno Luong le 19 Août 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 le 19 Août 2022
n = 2;
A(ceil((1:n*end)/n),:)

Bruno Luong
Bruno Luong le 19 Août 2022
n = 2;
A(kron(1:end,ones(1,n)),:)

Bruno Luong
Bruno Luong le 19 Août 2022
n = 2;
kron(A,ones(n,1))

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits


Version

R2011b

Community Treasure Hunt

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

Start Hunting!

Translated by