Моя проблема заключается в следующем: есть ли простой способ занять позицию первого ненулевого элемента в ненулевой строке в логическом массиве? Может быть несколько «одних» полос с «нулевыми» полосами между ними.
Пример ввода:
1 1 1 1 0 0 0 1 1 1 0 0 1 1 1
Пример вывода:
1 0 0 0 0 0 0 1 0 0 0 0 1 0 0
Спасибо!
Вы можете сделать это, используя команду diff:
diff
output = diff([0,input])>0;
diff принимает разницу между соседними значениями в массиве MATLAB. Вы должны добавить ведущий ноль, чтобы убедиться, что лидирующий ноль пойман, если он существует.