前提・実現したいこと
python初心者です
こちらのサイトを参考に心拍を検出する関数を作っていたのですが問題が発生したため、質問をさせていただきます。
発生している問題・エラーメッセージ
以下の関数を用いた場合に、
もとのプログラム内の第2引数として用いた配列に対しても関数内で行った処理が適用されてしまいます。
関数内で一度別の変数に受け渡しを行ってみたのですが改善されず、困っております。
該当のソースコード
python
1def peaks(sec, res): # 時間配列.ECG配列 2 res2=res 3 f = sec[1]-sec[0] 4 pwidth = 0.5 / f 5 thres = max(res) * 0.7 6 length = len(res) 7 res2[res2 < thres] = thres 8 9 dif = res2[1:length-1]-res2[0:length-2] 10 ddif = dif[1:(length-2)]*dif[0:(length-3)] 11 ppos = np.array([0]) 12 while 1: 13 p = np.argmin(ddif) 14 if ddif[p] == 0: 15 break 16 if len(ppos) > 0: 17 q = abs(ppos-p) 18 if min(q) > pwidth: 19 ppos = np.append(ppos, p) 20 else: 21 ppos = np.append(ppos, p) 22 ddif[p] = 0 23 ppos = ppos[1:] 24 ppos += 1 25 return np.sort(ppos)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/17 06:40
2020/03/17 11:19