Clear Filters
Clear Filters

How do I get the values of x at y=0.67 and y=0.87

3 views (last 30 days)
x=linspace(0,4,100);
y=zeros(size(x));
p=0.275;
figure
k=2.031;
for i=1:numel(x)
y(i)=(exp(-(p*(x(i)))^k));
end
axis([0 4 0 1.8])
plot(x,y,'--')
xlabel('x')
ylabel('y')
How do I calculate the corresponding x value for any given y value.

Answers (2)

Rik
Rik on 5 Feb 2018
You can reverse the formula with pen and paper (and maybe some Wolfram-Aplha), interpolate with a function like interp1, or solve the equation with solve. The first method doesn't really involve Matlab, and for the latter two the documentation should be self-explanatory. Nonetheless, if you have questions, you should of course feel free to post a comment here.

Torsten
Torsten on 5 Feb 2018
x = (log(1/y))^(1/k)/p
Best wishes
Torsten.
  2 Comments
Kalyan Dash
Kalyan Dash on 6 Feb 2018
Most of the time the expressions are much complex. So back calculation is not possible. So I want to get the answer from graph.
Have a look at the following code
Here it works fine. But in my code the variable y is an array and the plot is done Vs x and y arrays. So above code is not working.
Rik
Rik on 6 Feb 2018
x = (log(1./y)).^(1/k)/p
Don't forget element-wise operations if you want to use arrays. And if the expression is too complex to reverse, use either of the other solutions I mentioned in my answer.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!