finding intersection point between a scatter and vertical lines

Is there any way to find the y values of the intersection points between a scatter and vertical lines?

1 件のコメント

Vaultec
Vaultec 2014 年 7 月 4 日
If possible, Im looking for something that wont require the file exchange, as my script will need to work on multiple copies of matlab

サインインしてコメントする。

 採用された回答

Star Strider
Star Strider 2014 年 7 月 4 日
編集済み: Star Strider 2014 年 7 月 4 日

1 投票

Use interp1. I had to do a fair amount of coding to get the data from your figure, but since you will have all the original data, you can skip directly to the YIsx = interp1 step:
openfig('figure 10.fig'); % Get figure & extract data
h1c = get(gca, 'Children');
Xdc = get(h1c, 'XData');
DSz = cellfun(@max,(cellfun(@size, Xdc, 'Uni',0))); % Get data sizes
IdxMx = find(DSz == max(DSz));
Xdmx = cell2mat(Xdc(IdxMx));
Xd = cell2mat(Xdc(setdiff(1:length(Xdc),IdxMx))); % X-values of vertical lines
Ydc = get(h1c, 'YData');
Ydmx = cell2mat(Ydc(IdxMx));
% Yd = cell2mat(Ydc);
YIsx = interp1(Xdmx, Ydmx, Xd(:,1)); % Find intersections
hold on
plot(Xd(:,1), YIsx, '+r', 'MarkerSize',10, 'LineWidth',2) % Plot intersections
hold off
produces:

その他の回答 (1 件)

Ben11
Ben11 2014 年 7 月 4 日
編集済み: Ben11 2014 年 7 月 4 日

0 投票

You might want to use this submission from File Exchange:
I never tried it myself but it looks great.

カテゴリ

質問済み:

2014 年 7 月 4 日

編集済み:

2014 年 7 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by