[運算] 請問如何算出現有波型的起點

看板MATLAB作者 (大頭)時間11年前 (2013/11/26 13:58), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
假設我現在手邊有一組data, 裡面有640個數值 這640個數值一個點一個點描繪出來會得到一個波型 我想請問的是我要如何作才能得到這個波型的起始點的index呢? 我本來的想法是在波型開始之前, 點的數值應該不會有太劇烈的震盪 我就用一個for迴圈對這組data的640個點一一檢察, 當碰到第一個「數值大於150」的點時, 那個點就是波型的起始點 for j=1:640 if (abs(start(j)) >= 150) [val index] = start(j); end break end 我的迴圈應該要在第一次找到「數值大於150」的點時停下來 但我發現我不知道該怎麼讓它判定在這個時候停下來... 上面的code只會在j=1跑完之後就停了QQ 當然我也可以直接用繪圖的功能把這組data畫出來再去看點座標 但實際上是我有400組data, 我的需求是將這400個波型的起始點index都得到 我不可能手動畫400次圖吧>"< 不知道有沒有高手能提供一些想法呢? 拜託各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.207.166 ※ 編輯: yaujack 來自: 140.112.207.166 (11/26 14:01)

11/26 14:08, , 1F
我覺得你的邏輯用while可能比較好 從第1點開始往右掃
11/26 14:08, 1F

11/26 14:09, , 2F
不然就直接x=find(start>150); xs=min(x);
11/26 14:09, 2F

11/26 14:26, , 3F
噢感謝樓上! 這樣簡單很多了!!
11/26 14:26, 3F
文章代碼(AID): #1Ib3YNaX (MATLAB)
文章代碼(AID): #1Ib3YNaX (MATLAB)