2016-09-30 9 views
1

私はベクトルIrを持っており、findpeaks関数を使って山と谷を特定しようとしています。Findpeaksを使用してMatlabで正しく谷をプロットする方法

しかし、私が谷をプロットすると、次の画像が得られます。何が間違っていますか?

enter image description here

これは私のコードで、私はデータセットをinvertigていたとき、私は何か間違ったことをやっていると仮定?

[ypk,yt] = findpeaks(Ir,'MinPeakProminence', 5); 
ypk2=[] 
yt2=[] 
for w = 1:numel(ypk) 
    if ypk(w) >=0 
     ypk2 = [ypk2;ypk(w)] 
     yt2 = [yt2;yt(w)] 
    end 
end 


%upsidedownIr = max(Ir)-Ir 
upsidedownIr = -Ir 
[ypk3,yt3] = findpeaks(upsidedownIr,'MinPeakProminence', 2); 
ypk4=[] 
yt4=[] 
for w = 1:numel(ypk3) 
    if ypk3(w) >=0 
     ypk4 = [ypk4;ypk3(w)] 
     yt4 = [yt4;yt3(w)] 
    end 
end 


figure(1), clf 

plot(time,Ir,'k-') 
hold on 
plot(time(yt2),ypk2,'r*') 
plot(time(yt4),ypk4,'g*') 
+0

を取得するために、負にそれらを有効にする必要があり、試みる-1 * ypk4私の仮定がない場合には間違った – Umar

+0

ありがとう、@Umar!正確にどこを見ますか?私はこれに新しいので、私は兆候を変更する必要があるか分からないので、私は尋ねています。申し訳ありませんが、あなたの編集を見ました! – Spica

+1

Perfect @Umar!ありがとう、答えとして投稿してください、私はそれを受け入れることができます! – Spica

答えて

0
あなたの谷の符号が間違っている

が最後に-1*ypk4を試す値が正しいそれ以外の場合は、それを否定してください、あなたは正の値としてあなたに谷を与え、あなたのコード内であなたのIrを反転されますので、再び、私は見ることができますが、それは否定的であるべき谷の符号が間違っているということですまあ正解に または

ypk4 = -1*ypk4 
関連する問題