Ho to repeat a vector?

1 Ansicht (letzte 30 Tage)
M G
M G am 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 Kommentar
Jordan Lessentier
Jordan Lessentier am 2 Mai 2017
https://fr.mathworks.com/help/matlab/ref/repelem.html

Melden Sie sich an, um zu kommentieren.

Antworten (4)

Matt Fig
Matt Fig am 24 Nov. 2012
Bearbeitet: Matt Fig am 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 am 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 Kommentar
Jan
Jan am 25 Nov. 2012
+1: While this is not very efficient, it is a creative recycling of the Signal Processing toolbox.

Melden Sie sich an, um zu kommentieren.


Azzi Abdelmalek
Azzi Abdelmalek am 24 Nov. 2012
Bearbeitet: Azzi Abdelmalek am 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 am 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);

Kategorien

Mehr zu Images finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by