Filter löschen
Filter löschen

How to avoid for-loop here; repmat

2 Ansichten (letzte 30 Tage)
Pete sherer
Pete sherer am 17 Sep. 2018
Kommentiert: Star Strider am 17 Sep. 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 %

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices 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