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 %

 採用された回答

Star Strider
Star Strider 2018 年 9 月 17 日

0 投票

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

2 件のコメント

Pete sherer
Pete sherer 2018 年 9 月 17 日
Thank you verymuch
Star Strider
Star Strider 2018 年 9 月 17 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by