how to determine each local min point?

1 visualización (últimos 30 días)
William
William el 6 de Mzo. de 2013
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*

Respuesta aceptada

Image Analyst
Image Analyst el 6 de Mzo. de 2013
Editada: Image Analyst el 6 de Mzo. de 2013
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 comentario
William
William el 7 de Mzo. de 2013
Thanks a lot and it did solve my troubles!!! :)

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 6 de Mzo. de 2013
Editada: Matt J el 6 de Mzo. de 2013
k=3; %Do this for all desired k>=0
xmin=fzero(@(x) x.*exp(x/2) - 2*pi*k,0)
  1 comentario
Matt J
Matt J el 6 de Mzo. de 2013
There is also a minimum at x=-2, as elementary calculus can tell you.

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by