Repeat values in a vector

1 回表示 (過去 30 日間)
Florian
Florian 2018 年 10 月 16 日
コメント済み: Florian 2018 年 10 月 17 日
Assume
a1=[1 5 8];
b1=[6 4 5];
a2=[1 2 3 4 5 6 7 8];
Now I want to create a matching vector with values repeated as follows:
b2=[6 6 6 6 4 4 4 5];
Thanks in advance!
  2 件のコメント
Kevin Chng
Kevin Chng 2018 年 10 月 16 日
Have you tried it?
KSSV
KSSV 2018 年 10 月 16 日
編集済み: KSSV 2018 年 10 月 16 日
Whats the logic behind b2? If it is a mere repeating...read about repelem and repmat.

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

採用された回答

Andrei Bobrov
Andrei Bobrov 2018 年 10 月 16 日
b2 = b1(cumsum(ismember(a2,a1)));
  1 件のコメント
Florian
Florian 2018 年 10 月 16 日
Many thanks Andrei, also for answering my other question!

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

その他の回答 (1 件)

Bruno Luong
Bruno Luong 2018 年 10 月 16 日
編集済み: Bruno Luong 2018 年 10 月 16 日
Another method:
[~,loc] = histc(a2,a1);
b2 = b1(loc)
yet another one
b2 = b1(interp1(a1,1:length(a1),a2,'previous'))
  1 件のコメント
Florian
Florian 2018 年 10 月 17 日
Many thanks!

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by