Мне нужно определить не чередующиеся значения из матрицы, используя векторизованный метод - PullRequest
0 голосов
/ 21 ноября 2011

Итак, у меня есть 1D матрица значений в MATLAB, которая будет содержать значение 11 или 12.

Например, n=[11,12,11,12,12,12,11,11];

Я хочу выбрать значения на основепо следующим правилам:

  • Любому значению 11 должно предшествовать 12

  • После любого значения 12 должно следовать 11

Формат вывода не важен.Массив с подсветкой, который не соответствует вышеуказанным правилам, такой как n1=[0,1,1,0,0,1,1,0];, сработает.

Как я могу сделать это векторизованным способом?

1 Ответ

2 голосов
/ 21 ноября 2011

Этот код должен работать:

n=[11,12,11,12,12,12,11,11];
nd = diff(n);
n1 = [0 nd]==-1 | [nd 0]==-1;

В основном мы смотрим на последовательность с предыдущим номером больше, чем следующий на 1.

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