Change sequence of consecutive trues to falses, in logical array
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Enrico Gambini
il 13 Ott 2022
Modificato: Bruno Luong
il 13 Ott 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 Commenti
Risposta accettata
Bruno Luong
il 13 Ott 2022
Modificato: Bruno Luong
il 13 Ott 2022
x=[true;false;false;true;true;true;true;true;false;true]'
x & ~([false,x(1:end-1)]&[x(2:end),false])
0 Commenti
Più risposte (1)
Chunru
il 13 Ott 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]'
Vedere anche
Categorie
Scopri di più su Multidimensional Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!