找回密码
 注册
关于网站域名变更的通知
查看: 425|回复: 1
打印 上一主题 下一主题

利用 diff 函数统计向量中连续出现的数字并计数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-2-26 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
利用 diff 函数统计向量中连续出现的数字并计数" M5 B$ q* X, E( |- A" U  |4 e
; K9 d4 Y; ^- I7 E/ B  [

, E, x; S! @( }$ _* W9 j# ]% sdiff: 求前后两项之差,diff(X)= [X(2)-X(1),X(3)-X(2),...,X(n)-X(n-1)]。2 l/ b3 D% i& B# D' u5 n
6 v; P) G8 s( M8 j* _& z
A = [0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1];  |: [2 M4 S3 _% e1 \5 I  e
k = diff([0 A 0])           %对A前后补0之后再使用diff,补0是为了保证对于A的第一个和最后一个元素是1的情况,也能够通过diff求得1或-1,然后再根据1和-1来寻找连续1的位置和个数
4 {% |6 D" D4 y& J  p7 b" K* qind = find(k==1)            %1出现的位置即连续1出现的位置4 Z. |! [( W1 @8 T. z! E
num = find(k==-1)-ind       %-1和1出现的位置差即连续1出现的个数
+ `) }# n3 b1 k% N; ~" |! T其中 ind 是出现连续1的首尾的索引,num 是该连续1出现的个数。这里 ind = [4 8 12 18], num = [3 2 3 1],也就是说 A 向量中4这个位置开始出现连续1,连续出现3次。同理8位置开始出现连续1,连续出现2次。

该用户从未签到

2#
发表于 2021-2-26 11:02 | 只看该作者
利用 diff 函数统计向量中连续出现的数字并计数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-11 12:57 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表