How can I find X for given Y value in a fitted curve?

Hi everyone.
I would like to know how to find the X value of a fitted curve given an Y value.
I had some data and fitted them using Gaussian fit. Now they look like this in my workspace:
An example of these functions as seen in the Command Window is:
f50 =
General model Gauss1:
f50(x) = a1*exp(-((x-b1)/c1)^2)
Coefficients (with 95% confidence bounds):
a1 = 7.81 (7.602, 8.018)
b1 = 1.497e-013 (-0.001774, 0.001774)
c1 = 0.08174 (0.07924, 0.08425)
Does someone wonder how to do it?
I really appreciate any help you can provide.
Pablo

 Accepted Answer

Use the inverse function:
X=b1+c1*(log(a1./Y))^0.5
or
X=b1-c1*(log(a1./Y))^0.5
Best wishes
Torsten.

1 Comment

Thank you! It is a good proposal but I have many fits and I have to find a quick way to do it.
Good answer anyway ;)

Sign in to comment.

More Answers (2)

other variant
X = arrayfun(@(y)fzero(f50(x)-y,1),Y);

3 Comments

Brilliant! It took me a while to figure out how to use this. I had to change it a bit to parameterize the X and Y variables index:
X2= arrayfun( @(t)fzero( @(x)fun(x)-Y(t), X(t)) , 1:length(X));
Also zero is a solver, so for best result don't forget to normalize your data.
Below is my modification to Andrei's solution:
X = arrayfun(@(y)fzero(@(x)f50(x)-y,x0),Y)
x0 is the initial value for the fzero function Y can be a scalar or a vector
I'm sorry for my lack of understanding, but to clarify X is the value you are looking for given a Y on the fitted curve. What are x and y referring to?

Sign in to comment.

you can do this with the function
Y = feval(cfit,X);
which you could have easily found yourselve if you would have typed
doc cfit

3 Comments

you could also have read my question to give an answer to it
I have read your question but overlooked the fact that you were looking for the X values and not the Y values
in this case you might find this link helpful:
thanks, but during the 2 hours before asking this question I also found that topic.
see you

Sign in to comment.

Categories

Products

Community Treasure Hunt

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

Start Hunting!