Azzera filtri
Azzera filtri

How to avoid for-loop here; repmat

2 visualizzazioni (ultimi 30 giorni)
Pete sherer
Pete sherer il 17 Set 2018
Commentato: Star Strider il 17 Set 2018
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

Star Strider
Star Strider il 17 Set 2018
If you have R2015a or later, use the repelem (link) function:
fullX = repelem(xval, numX)
  2 Commenti
Pete sherer
Pete sherer il 17 Set 2018
Thank you verymuch
Star Strider
Star Strider il 17 Set 2018
As always, my pleasure!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by