看板 MATLAB 關於我們 聯絡資訊
問題很簡單,分兩個部分 一串 0 1 數列 大致長得像是 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 簡單來說 1 代表 A 事件發生 0 代表沒有 然後這是每個時間點的紀錄 所以 A 一旦發生不會只發生 1 個點就結束 一定是一串 我想要做的是創一個新的數列 第 N 次 一串 1 變成一串 N 以上面的例子來說就是後面 4 個 1 都變成 2 我只想到 for loop + if 硬幹的方法 但實際資料很長 又有好多受試者 感覺很耗時間 第二個部份是 如果兩串 1 之前的 0 少於 200 個 需要把這兩串 1 合併 (中間的 0 都當作 1) 我一樣只想到硬解 我猜是小弟我不夠熟 Matlab 平常都在用一些自己習慣的 function 沒有做過類似的事情 但應該都有速解 希望高手可以幫個忙 甚至提點一下就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.208.230.65 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1441423246.A.93D.html
JamesChen: 謝謝大家 09/05 11:20
JamesChen: 忘了有第三部分 09/05 11:25
JamesChen: 如果一串 1 本身長度低於 100 我也可能希望讓他變為 0 09/05 11:26
YoursEver: 下面那篇太複雜了,直接呼叫bwlabel,一行就打完收工. 09/06 00:10
YoursEver: 超過100的部分,請利用bwlabel回傳的num解決. 09/06 00:12
celestialgod: 又學到一招,感恩 09/06 00:49