Azzera filtri
Azzera filtri

Repeat values in a vector

3 visualizzazioni (ultimi 30 giorni)
Florian
Florian il 16 Ott 2018
Commentato: Florian il 17 Ott 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 Commenti
Kevin Chng
Kevin Chng il 16 Ott 2018
Have you tried it?
KSSV
KSSV il 16 Ott 2018
Modificato: KSSV il 16 Ott 2018
Whats the logic behind b2? If it is a mere repeating...read about repelem and repmat.

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 16 Ott 2018
b2 = b1(cumsum(ismember(a2,a1)));
  1 Commento
Florian
Florian il 16 Ott 2018
Many thanks Andrei, also for answering my other question!

Accedi per commentare.

Più risposte (1)

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

Categorie

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

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by