Repeat values in a vector

3 Ansichten (letzte 30 Tage)
Florian
Florian am 16 Okt. 2018
Kommentiert: Florian am 17 Okt. 2018
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 Kommentare
Kevin Chng
Kevin Chng am 16 Okt. 2018
Have you tried it?
KSSV
KSSV am 16 Okt. 2018
Bearbeitet: KSSV am 16 Okt. 2018
Whats the logic behind b2? If it is a mere repeating...read about repelem and repmat.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 16 Okt. 2018
b2 = b1(cumsum(ismember(a2,a1)));
  1 Kommentar
Florian
Florian am 16 Okt. 2018
Many thanks Andrei, also for answering my other question!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Bruno Luong
Bruno Luong am 16 Okt. 2018
Bearbeitet: Bruno Luong am 16 Okt. 2018
Another method:
[~,loc] = histc(a2,a1);
b2 = b1(loc)
yet another one
b2 = b1(interp1(a1,1:length(a1),a2,'previous'))

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by