How to avoid for-loop here; repmat

Hi Could anyone help suggest a faster way to construct this vector?
xval = [1 2 7 9];
numX = [1 4 2 3];
% I want final output to be [1 2 2 2 2 7 7 9 9 9];
fullX = [];
for runi=1:length( xval)
tval = xval( runi);
n = numX( runi);
if n > 0
fullX= [ fullX; repmat( tval, n, 1)];
end
end %

 Risposta accettata

If you have R2015a or later, use the repelem (link) function:
fullX = repelem(xval, numX)

2 Commenti

Thank you verymuch
As always, my pleasure!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by