How should I find the x value of the given y value?

108 ビュー (過去 30 日間)
Laura Kim
Laura Kim 2020 年 7 月 18 日
回答済み: Star Strider 2020 年 7 月 18 日
Hi, I have this graph and here I would like to find the coordinates where the horizontal line and curvy graph meet together
How should I find the x-coordinate of the given y-value (this case y=6.585)?
Thank you

回答 (2 件)

SAA
SAA 2020 年 7 月 18 日
編集済み: SAA 2020 年 7 月 18 日
I am not sure if you can find an exact value since you are trying to compare 2 doubles and that's usually not a good idea, but you can get it using a tolerance.
it should be something like this:
% assuming you have 2 matrices x and y containing your data
z = x(y==6.585); % assuming that there is an exact value that equals it but most likely you don't so you need a tolerance
% this should work
tol = 10^-9;
z = x(abs(y-6.585) < tol); % you can also use find instead of x

Star Strider
Star Strider 2020 年 7 月 18 日
Try something like this:
y = 6.585;
eqidx = find(diff(sign(curvy_graph - y)));
for k = 1:numel(eqidx)
ixrng = [-1 0]+eqidx(k);
xval(k) = interp1(curvy_graph(ixrng), x(ixrng), y);
end
That will give you the x-value for all of the intersections. Choose the ones you want to use. See the documentation on interp1 for its options.
.

カテゴリ

Help Center および File ExchangeGraph and Network Algorithms についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by