Removing elements from an Array
Mostrar comentarios más antiguos
I have two arrays:
A = [0, 1]; and B = [0, 1, 3, 1, 4, 5, 6];
I want to compare the first element of A to the first 3 elements of B and the second element of A to the next 4 elements of B. If the elements of A are equal I delete it from B. So in simple:
if (A(1) == B(1:3))
delete A(1) from B
Similarly
if (A(2) == B(4:7))
delete A(2) from B
Is there any way I can do this without having to enter the indices in a hard coded manner?
So in the end B should have the following elements:
B = [1, 3, 4, 5, 6];
3 comentarios
Jan
el 22 de Jun. de 2018
The question is not clear. What if A(1) is 1? Then 1 is found in the first block of B. Should B be set to
[0, 3, 1, 4, 5, 6];
afterwards, or to
[0, 3, 4, 5, 6];
Or should the elements of B removed at the end only after the matching elements have been found?
So what are the wanted outputs for:
A = [0, 1]
B1 = [0, 1, 2, 0, 1, 2]
B2 = [0, 0, 0, 1, 2, 3]
B3 = [1, 1, 2, 1, 1, 2]
?
CharlesB
el 22 de Jun. de 2018
Jan
el 22 de Jun. de 2018
Is this the same problem as in your thread https://www.mathworks.com/matlabcentral/answers/406790-removing-elements-from-an-array-based-on-their-position-for-every-3-elements? Then it is solved there.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!