Finding coordinates in a plot

2 visualizaciones (últimos 30 días)
Tanmay Singh
Tanmay Singh el 21 de Ag. de 2021
Comentada: Star Strider el 22 de Ag. de 2021
I have to find halfwidth of a curve I have plotted for this I need to find half of maximum value in the plot and their corresponding coordinates.How do I find it?
  2 comentarios
darova
darova el 21 de Ag. de 2021
Where is the curve?
Tanmay Singh
Tanmay Singh el 21 de Ag. de 2021

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 21 de Ag. de 2021
I hope this is not homework!
x = linspace(-5000, 5000, 250);
y = [7.5; 1.9; 0.9] .* exp(-(0.001*[1; 0.85; 0.6] * x).^2);
[ymx,idx] = max(y,[],2);
hafmax = ymx/2;
for k = 1:numel(hafmax)
idxrng1 = find(y(k,1:idx(k))<hafmax(k), 1, 'last');
idxrng2 = find(y(k,idx(k):numel(x))<hafmax(k),1,'first')+idx(k);
xm(k,1) = interp1(y(k,idxrng1+(-3:3)), x(idxrng1+(-3:3)), hafmax(k));
xm(k,2) = interp1(y(k,idxrng2+(-3:3)), x(idxrng2+(-3:3)), hafmax(k));
end
format short g
xm
xm = 3×2
-832.87 832.87 -979.71 979.71 -1387.7 1387.7
format short
figure
plot(x, y)
hold on
for k = 1:numel(hafmax)
plot([xm(k,1) xm(k,2)], [1 1]*hafmax(k), '-k', 'LineWidth',1.5)
end
hold off
grid
xlim([-1 1]*2000)
Make appropriate changes with respect to your data.
.
  2 comentarios
Tanmay Singh
Tanmay Singh el 22 de Ag. de 2021
Thankyou..!
Star Strider
Star Strider el 22 de Ag. de 2021
As always, my pleasure!
.

Iniciar sesión para comentar.

Más respuestas (1)

darova
darova el 21 de Ag. de 2021
Use polyxpoly
x1 = 0:.1:pi; % first curve
y1 = sin(x1);
x2 = [0 pi]; % straight line for findinf intersection
y2 = [1 1]*max(y1)/2;
[xc,yc] = polyxpoly(x1,y1,x2,y2);
plot(xc,yc,'.r')
line(x1,y1)
line(x2,y2)

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by