Matlab: найти длину определенных частей массива с заданным порогом - PullRequest
0 голосов
/ 10 февраля 2019

Рассмотрим вектор единиц и нулей, показанный на следующем графике

enter image description here

Как получить без использования циклов длины единиц / нулейразделы в таком массиве?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете использовать diff и find следующим образом:

a = [ 0 0 0 1 1 0 0 1 1 1 1 0 1];
result = diff(find([ 1 diff(a) 1]))

result =

 3     2     2     4     1     1

Или другой пример:

a = [ 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1]
result = diff(find([ 1 diff(a) 1]))

result =

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