how to determine each local min point?

조회 수: 1 (최근 30일)
William
William 2013년 3월 6일
Hi everyone, I have a urgent question to seek for help...
I have a sine wave however, angle in the sine wave is not a constant variation of x as shown below...
x = 0: 0.00001: 4;
v = x.*exp(x/2);
t = sin(v);
plot(x,t);
My trouble is how to display each of the local xmin point?
From the plot itself i wanted to display xmin1 = 1.859, xmin2 = 2.73, and xmin3 = 3.307.
Hope to hear from anyone soon... been cracking my head for the past weeks... )':
Best Regards
Will*

채택된 답변

Image Analyst
Image Analyst 2013년 3월 6일
편집: Image Analyst 2013년 3월 6일
If you have the Image Processing Toolbox, you can use imregionalmin(), like this:
% Original code
x = 0: 0.00001: 4;
v = x.*exp(x/2);
t = sin(v);
plot(x,t);
% Image Analyst's code:
minsIndexes = imregionalmin(t); % Logical array of where mins are.
% Extract the t values at those min locations;
minValues = t(minsIndexes)
% Get the x values at those mins.
minX = x(minsIndexes)
% Plot star over the mins.
hold on;
plot(minX, minValues, 'r*', 'MarkerSize', 10);
In the command window:
minValues =
0 -1.00 -1.00 -1.00 -1.00 -0.96
minX =
0 1.86 2.76 3.31 3.70 4.00
  댓글 수: 1
William
William 2013년 3월 7일
Thanks a lot and it did solve my troubles!!! :)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Matt J
Matt J 2013년 3월 6일
편집: Matt J 2013년 3월 6일
k=3; %Do this for all desired k>=0
xmin=fzero(@(x) x.*exp(x/2) - 2*pi*k,0)
  댓글 수: 1
Matt J
Matt J 2013년 3월 6일
There is also a minimum at x=-2, as elementary calculus can tell you.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by