2011-11-21 3 views
0

Donc, j'ai une matrice 1D de valeurs dans Matlab qui contiendra la valeur soit 11 ou 12.J'ai besoin d'identifier les valeurs non-alternance à partir d'une matrice en utilisant une méthode vectorisé

Par exemple n=[11,12,11,12,12,12,11,11];

Je veux choisir les valeurs basées sur les règles suivantes:

  • Toute valeur de 11 doit être précédée par un 12

  • Toute valeur o f 12 doit être suivi par un 11

Le format de la sortie n'est pas important. Un tableau qui met en évidence qui ne sont pas conformes aux règles ci-dessus, comme n1=[0,1,1,0,0,1,1,0]; ferait l'affaire.

Comment est-ce que je peux faire ceci d'une manière vectorisée?

Répondre

2

Ce code devrait fonctionner:

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

En fait, nous regardons la séquence avec le numéro précédent est supérieur à 1. suivant par

+0

Ahh, qui est très gentil, merci beaucoup! – zotty

Questions connexes