Effacer les filtres
Effacer les filtres

How find FWHM for large numbers of plots?

1 vue (au cours des 30 derniers jours)
MOHD UWAIS
MOHD UWAIS le 26 Juil 2020
Commenté : Star Strider le 27 Juil 2020
Here simply if i want to write the matlab code to find the fwhm (up to 4 or 5 digits) of like following curve, i have to find x values difference corresponding to average value of y. Since x values at average y do not lie at y data points hence i required interpolate values of x. Pls help regarding to this.
for example take below plot and data
clear all
clc
y=[];
for x=-4:5;
z=x.^2;
y=[y z];
end
y;
x=-4:5;
plot(x,y)
Here i have to find x values difference at y=12.5 to determine the fwhm ,of respective curve. How can i write in code?
Thank you.

Réponse acceptée

Star Strider
Star Strider le 26 Juil 2020
Try this:
x=-4:5;
for k = 1:numel(x)
z=x(k).^2;
y(k) = z;
end
[miny,idx] = min(y);
left_x = interp1(y(1:idx),x(1:idx), y(1)/2)
right_x = interp1(y(idx:end),x(idx:end), y(1)/2)
figure
plot(x,y)
hold on
plot([left_x right_x], [1 1]*y(1)/2, '+r')
hold off
There is no ‘full width-half-maximum’ because ther is no defined maximum. This code finds the approximate values for ‘full-width-half-minimum’ instead, since only that makes sense in this context.
.
  5 commentaires
MOHD UWAIS
MOHD UWAIS le 27 Juil 2020
can i choose max y (not y(1)) on left side in a particular data set?
Star Strider
Star Strider le 27 Juil 2020
As always, my pleasure!
It would likely be best to use ‘max(y)’.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by