Effacer les filtres
Effacer les filtres

Repeat array onto the same row

2 vues (au cours des 30 derniers jours)
Leonardo
Leonardo le 9 Sep 2023
Commenté : Leonardo le 9 Sep 2023
I want A=[1,2,3,4] to
become A=[1,2,3,4,1,2,3,4] by x2
or
become A=[1,2,3,4,1,2] by x1.5
is it possible?

Réponse acceptée

Paul
Paul le 9 Sep 2023
A=[1,2,3,4]
A = 1×4
1 2 3 4
horzcat(A,A)
ans = 1×8
1 2 3 4 1 2 3 4
horzcat(A,A(1:floor(numel(A)/2))) % or use ceils depending on how you want to handle the case where numel(A) is odd
ans = 1×6
1 2 3 4 1 2
  1 commentaire
Leonardo
Leonardo le 9 Sep 2023
Thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

Dyuman Joshi
Dyuman Joshi le 9 Sep 2023
Modifié(e) : Dyuman Joshi le 9 Sep 2023
Here's a generalised code -
A=[1,2,3,4];
B = repetition(A,2)
B = 1×8
1 2 3 4 1 2 3 4
B = repetition(A,1.5)
B = 1×6
1 2 3 4 1 2
B = repetition(A,2.75)
B = 1×11
1 2 3 4 1 2 3 4 1 2 3
B = repetition(A,3.3)
Error using solution>repetition
Incompatible number for repetition
function B = repetition(A,n)
B = repmat(A,1,ceil(n));
k = numel(A)*n;
%k needs to be an integer to repeat an array by a non-integer number
%Check for a number being an integer is the reminder when divided by 1 is zero
if rem(k,1)
error('Incompatible number for repetition');
else
B = B(1:k);
end
end
  1 commentaire
Leonardo
Leonardo le 9 Sep 2023
Thank you!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by