Re: [問題] 將連續數字分群

看板MATLAB作者 (樂而不淫哀而不傷)時間11年前 (2013/01/14 17:12), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串4/4 (看更多)
找連續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
GOOD
01/15 02:36, 1F

01/15 12:42, , 2F
把向量當成N-by-1的image, 用bwlabel + find
01/15 12:42, 2F
文章代碼(AID): #1GyylnLi (MATLAB)
文章代碼(AID): #1GyylnLi (MATLAB)