Re: [問題] 將連續數字分群
找連續0個數
a=[0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0];
b= find([1 a 1]==1); % 找到所有的"1" 1 7 8 9 10 11 12 13 14 16 17 18 23
step1 = diff(b); % "1"的間隔-1就是連續0的個數 6 1 1 1 1 1 1 1 2 1 1 5
step1(step1==1) = []; % 把1提掉
RST = step1 -1; % 答案 5 1 4
※ 引述《tomjin (瞇~)》之銘言:
: ※ 引述《aaa51902 (五樓好帥)》之銘言:
: : 我的問題有點複雜@@"
: : 資料如果是 a=[0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0];
: : "1和0不確定會連續出現幾個"
: : 我現在想知道:一次連續出現 5個以上的1或0 是在a的 ?~??點
: : 該怎麼寫才好
: : 目前我卡在
: : b=diff(a);
: : c=find(b==0); %找出b=0的點就是連續數字
: : d=diff(c); %卡在這裡@@"
: : 有請各位幫幫我 謝謝
: a=[0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0];
: b=zeros(1,length(a));
: for i=1:length(a)
: if i+4<=length(a)
: if a(1,i)==1 & a(1,i+1)==1 & a(1,i+2)==1 & a(1,i+3)==1 & a(1,i+4)==1 %當=1
: b(1,i:i+4)='x';end
: if a(1,i)==0 & a(1,i+1)==0 & a(1,i+2)==0 & a(1,i+3)==0 & a(1,i+4)==0 %當=0
: b(1,i:i+4)='y';end
: end
: end
: m=find(b=='x');%找出x,y位置
: n=find(b=='y');
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.78.64.34
推
01/15 02:36, , 1F
01/15 02:36, 1F
→
01/15 12:42, , 2F
01/15 12:42, 2F
討論串 (同標題文章)