How to select the maximum points of the absolute values of a sin function
조회 수: 2 (최근 30일)
이전 댓글 표시
I would like to get all the maximum values of x in another matrix any idea? Sorry I am new
fs = 500;
t = 0:1/fs:10-1/fs;
x = abs(sin(2*pi*3*t));
댓글 수: 1
Adam
2017년 8월 17일
편집: Adam
2017년 8월 17일
Due to discretisation and the imperfect reproduction of the sine wave you will only pick up certain peaks as being the maximum.
find( x == 1 )
will give the indices of these locations, but when I run it this gives me only every 3rd peak. If you want the actual peak locations of the continuous curve surely that is just trivial maths?
peakLocs = 1/12 : 1/6 : ( 10 - 1/fs );
채택된 답변
추가 답변 (1개)
Selva Karna
2017년 8월 17일
fs = 500;
t = 0:1/fs:10-1/fs;
x = abs(sin(2*pi*3*t));
p=find(x==1)
댓글 수: 1
Stephen23
2017년 8월 17일
편집: Stephen23
2017년 8월 17일
This answer is very fragile, and does not handle floating-point errors at all. This is not a general solution for this task (try changing fs to 499 and see what happens).
Read these to know why testing for equality of floating-point values is a bad way to write code:
and a hundred other discussion of this topic.
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!