extract elements and build the remain vector

Hello Community,
i need your help.
A vector v has 128 elements with random numbers.
The elements of index 1 21 31 41 should be etracted, and saved as vector a.
the remain elements of vector v should be saved as vector b.
my version consist two for loops which is in deed a bad solution for large vectors.
PS: the vectors are not constant.
maybe someone could finish the algorithm:
v = 1:128;
a = v([1 21 31 41]);

 Respuesta aceptada

Image Analyst
Image Analyst el 21 de Dic. de 2020
Use setdiff():
N = 1600;
v = 1:N;
a = [2 59 87 113]
extracted = v(a)
otherIndexes = setdiff(1:length(v), a);
b = v(otherIndexes)

Más respuestas (1)

David Hill
David Hill el 21 de Dic. de 2020
a=v([1 21 31 41]);
b=v([2:20,22:30,32:40,42:end]);

5 comentarios

Marko
Marko el 21 de Dic. de 2020
Editada: Marko el 21 de Dic. de 2020
Hello David,
thank you for your fast response. I'm sorry for beeing not specfic enough.
Could you develop a code snippet also for non-constant vectors v,a ?
Best,
MJ
Depending on what random numbers you want, use rand() or randi() functions (assuming uniform distribution)
v=A*rand(1,128)-B;%generates random numbers between -B:A-B
ok, i see i was not clear enough.
i try beeing a precicsly as possible:
Vector v has N elements:
N = 1600;
v = 1:N;
Vector a is given and contains integer number: e.g.
a = [2 59 87 113]
How could an algorithm extract a from v and save the remaining elements in vector b.
Important: the vectors v and a have not a constant number of elments, they can change.
The solution should be for this example:
b=[1 3 ... 58 60 ... 86 88 ... 112 114 ... 1600]
b=v(~ismember(v,a));
Marko
Marko el 21 de Dic. de 2020
Perfect!
You are a genius!

Iniciar sesión para comentar.

Categorías

Más información sobre Get Started with MATLAB en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 21 de Dic. de 2020

Comentada:

el 21 de Dic. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by