intersection of a line y=ax+b with a matrix containing x and y

3 Ansichten (letzte 30 Tage)
Mary
Mary am 2 Jan. 2021
Kommentiert: Mary am 3 Jan. 2021
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
  2 Kommentare
Mathieu NOE
Mathieu NOE am 2 Jan. 2021
hello Mary
there are maybe some already good code for what you intend to do
Mary
Mary am 3 Jan. 2021
thanks Mathieu. I think indeed, fzero should be used.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt J
Matt J am 2 Jan. 2021
Bearbeitet: Matt J am 2 Jan. 2021
x_intersection = fzero(@(x) a*x+b-interp1(vec_x,vec_y,x) , vec_x([1,end]) )

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by