EDA365电子论坛网
标题:
利用 diff 函数统计向量中连续出现的数字并计数
[打印本页]
作者:
pulbieup
时间:
2021-2-26 10:00
标题:
利用 diff 函数统计向量中连续出现的数字并计数
利用 diff 函数统计向量中连续出现的数字并计数
) H0 _% v+ _- J4 b0 q; J7 D
- b$ q( e) X4 D+ U* g
y$ E; g" L7 p B
diff: 求前后两项之差,diff(X)= [X(2)-X(1),X(3)-X(2),...,X(n)-X(n-1)]。
8 ~( h/ i x' S r3 v" Y+ s
/ F2 w* ` Y/ h/ A A
A = [0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1];
$ f, l+ F7 o9 b) u/ U' ^1 D
k = diff([0 A 0]) %对A前后补0之后再使用diff,补0是为了保证对于A的第一个和最后一个元素是1的情况,也能够通过diff求得1或-1,然后再根据1和-1来寻找连续1的位置和个数
7 L- {3 m% D7 e/ o) X* `. h) H
ind = find(k==1) %1出现的位置即连续1出现的位置
! |% ^/ H3 m4 p
num = find(k==-1)-ind %-1和1出现的位置差即连续1出现的个数
" a8 Y3 \3 x- f/ N( U
其中 ind 是出现连续1的首尾的索引,num 是该连续1出现的个数。这里 ind = [4 8 12 18], num = [3 2 3 1],也就是说 A 向量中4这个位置开始出现连续1,连续出现3次。同理8位置开始出现连续1,连续出现2次。
作者:
NingW
时间:
2021-2-26 11:02
利用 diff 函数统计向量中连续出现的数字并计数
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2