|  | 
 
| 
利用 diff 函数统计向量中连续出现的数字并计数, N- c; }. D8 Q5 d6 C! T
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  
 ' d+ ]) h$ {  [+ e- a. J$ x  y* e) f0 G% K6 j1 W( S
 diff: 求前后两项之差,diff(X)= [X(2)-X(1),X(3)-X(2),...,X(n)-X(n-1)]。& C( H: Y6 _4 F/ ]: c/ c+ j
 
 " I, B8 E8 A2 y' t" K1 ^A = [0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1];
 2 a: U, J$ W. y1 R+ H8 Hk = diff([0 A 0])           %对A前后补0之后再使用diff,补0是为了保证对于A的第一个和最后一个元素是1的情况,也能够通过diff求得1或-1,然后再根据1和-1来寻找连续1的位置和个数' K- G2 y$ O" Q' ^3 R' L5 g" p/ N
 ind = find(k==1)            %1出现的位置即连续1出现的位置) R  \% _6 N4 h
 num = find(k==-1)-ind       %-1和1出现的位置差即连续1出现的个数7 e. r; ]0 ^! r6 }  \# Z1 J& W# q: Y
 其中 ind 是出现连续1的首尾的索引,num 是该连续1出现的个数。这里 ind = [4 8 12 18], num = [3 2 3 1],也就是说 A 向量中4这个位置开始出现连续1,连续出现3次。同理8位置开始出现连续1,连续出现2次。
 | 
 |