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 comentarios

Kevin Chng
Kevin Chng el 16 de Oct. de 2018
Have you tried it?
KSSV
KSSV el 16 de Oct. de 2018
Editada: KSSV el 16 de Oct. de 2018
Whats the logic behind b2? If it is a mere repeating...read about repelem and repmat.

Iniciar sesión para comentar.

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 16 de Oct. de 2018

0 votos

b2 = b1(cumsum(ismember(a2,a1)));

1 comentario

Florian
Florian el 16 de Oct. de 2018
Many thanks Andrei, also for answering my other question!

Iniciar sesión para comentar.

Más respuestas (1)

Bruno Luong
Bruno Luong el 16 de Oct. de 2018
Editada: Bruno Luong el 16 de Oct. de 2018

1 voto

Another method:
[~,loc] = histc(a2,a1);
b2 = b1(loc)
yet another one
b2 = b1(interp1(a1,1:length(a1),a2,'previous'))

Categorías

Productos

Preguntada:

el 16 de Oct. de 2018

Comentada:

el 17 de Oct. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by