Effacer les filtres
Effacer les filtres

Ho to repeat a vector?

1 vue (au cours des 30 derniers jours)
M G
M G le 24 Nov 2012
Hi all,
Could anybody plz be a help me what is the build-in function for:
repvec (1:5, 2)
which results in:
ans = 1 1 2 2 3 3 4 4 5 5
Thank you so much for your help :)
  1 commentaire
Jordan Lessentier
Jordan Lessentier le 2 Mai 2017
https://fr.mathworks.com/help/matlab/ref/repelem.html

Connectez-vous pour commenter.

Réponses (4)

Matt Fig
Matt Fig le 24 Nov 2012
Modifié(e) : Matt Fig le 24 Nov 2012
vec = 1:5;
reshape(vec([1 1],:),1,[])
% Or reshape(vec(ones(1,N),:),1,[]) to expand N times
For more complex expansions, give this file a try: EXPAND

Image Analyst
Image Analyst le 24 Nov 2012
If you have the Image Processing Toolbox, you can do it this way
out = imresize(a, [1 10], 'nearest')
where a is your 1:5 vector, and the 10 is how long you want the output to be.
  1 commentaire
Jan
Jan le 25 Nov 2012
+1: While this is not very efficient, it is a creative recycling of the Signal Processing toolbox.

Connectez-vous pour commenter.


Azzi Abdelmalek
Azzi Abdelmalek le 24 Nov 2012
Modifié(e) : Azzi Abdelmalek le 24 Nov 2012
vec=1:5
out=[vec;vec];
out=out(:)'
If you want to repeat n times
vec=1:5
n=10;
out=repmat(vec,n,1);
out=out(:)';

Jan
Jan le 25 Nov 2012
While I'd prefer Matt Fig's approach in real programs, here another approach, which might be interesting:
vec = 1:5;
n = 2;
index = zeros(1, length(vec) * n);
index(1:n:end) = 1;
index = cumsum(index);
result = vec(index);

Catégories

En savoir plus sur Images 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