Change sequence of consecutive trues to falses, in logical array
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Enrico Gambini
el 13 de Oct. de 2022
Editada: Bruno Luong
el 13 de Oct. de 2022
Hello guys!
I would like to find a fast procedure to change from true to false the consecutive trues in a logical array excluding only the first and the last true in the sequence.
For instance:
x=[true;false;false;true;true;true;true;true];
Desired output array should be:
output=[true;false;false;true;false;false;false;true];
Hope the question is clear.
Thank you!
0 comentarios
Respuesta aceptada
Bruno Luong
el 13 de Oct. de 2022
Editada: Bruno Luong
el 13 de Oct. de 2022
x=[true;false;false;true;true;true;true;true;false;true]'
x & ~([false,x(1:end-1)]&[x(2:end),false])
0 comentarios
Más respuestas (1)
Chunru
el 13 de Oct. de 2022
x=[true;false;false;true;true;true;true;true]'
output = x;
dx = diff(x(1:end-1))
output1 = output(2:end-1);
output1(output1 & (dx==0)) = false;
% Desired output array should be:
output(2:end-1) = output1;
output
% Desired
[true;false;false;true;false;false;false;true]'
1 comentario
Ver también
Categorías
Más información sobre Multidimensional Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!