how to duplicate each cell in an array

1 Ansicht (letzte 30 Tage)
TZ
TZ am 11 Dez. 2017
Kommentiert: TZ am 11 Dez. 2017
Hi, i have an array of numbers. I want a that a different array will have each cell in the first array but multiple times. for example: array1 = [1,2,5] so array2 = [1,1,1,2,2,2,5,5,5] if i choose to multiply by 3. I have a function that can do it
factor = 3
for i=1:length(array1)
array2(1+factor*(i-1):factor*i) = array1(i);
end
however i was wondering if there is a function that does it which will be less time costly since I have to repeat this process multiple times with large arrays.
thanks!

Akzeptierte Antwort

KL
KL am 11 Dez. 2017
Bearbeitet: KL am 11 Dez. 2017
Something like this maybe,
n = 3;
array1 = [1,2,5];
array2 = reshape(array1.*ones(n),1,[])
1 1 1 2 2 2 5 5 5
or
array2 = ones(n).*array1
array2 = array2(:).'
or
array2 = reshape(repmat(array1,n,1),1,[])

Weitere Antworten (0)

Kategorien

Mehr zu Multidimensional Arrays 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