MATLAB: Intersection of a line y=ax+b with a matrix containing x and y

interpolationintersection

Dear Matlab users,
What I want to do is very simple. I am wondering if there is already a function in Matlab written for it. I explain the idea:
I have two vectors: vec_x and vec_y. At the other hand, I have a line which is described as y=ax+b
I want to find the intersection between this line y=ax+b with the set of vectors vec_x and vec_y. And lets asuume that to keep the accuracy as high as possible, we dont want to find a polynomial function which links vec_x to vec_y.
Below, I give a very simple example:
vec_x=[1 2 3]; vec_y= [1 2 3];
and the line is y=5x-10;
so I would start by replacing all the values of vec_x in the line to see if any of vec_y is obtaind. If this step fails that means I shoud creat a new vec_x_new= 1:step:3, and make an interpolation to find vec_y_new (vec_y_new=interp1(vec_x, vec_y, vec_x_new). So I keep changing the "step", till I found that for vec_x_new(i)=2.5 -> y=a vec_x_new(i) + b = 2.5; and 2.5 = vec_y_new(i)
So, now the question is whether this idea already exists in terms of a function in Matlab.
Thanks a lot for your help,
Best regards,
Mary

Best Answer

x_intersection = fzero(@(x) a*x+b-interp1(vec_x,vec_y,x) , vec_x([1,end]) )
Related Question