Matlab - занять первую ненулевую позицию в логическом массиве - PullRequest
0 голосов
/ 25 июня 2018

Моя проблема заключается в следующем: есть ли простой способ занять позицию первого ненулевого элемента в ненулевой строке в логическом массиве? Может быть несколько «одних» полос с «нулевыми» полосами между ними.

Пример ввода:

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

Спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете сделать это, используя команду diff:

output = diff([0,input])>0;

diff принимает разницу между соседними значениями в массиве MATLAB. Вы должны добавить ведущий ноль, чтобы убедиться, что лидирующий ноль пойман, если он существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...