Effacer les filtres
Effacer les filtres

finding intersection point between a scatter and vertical lines

1 vue (au cours des 30 derniers jours)
Vaultec
Vaultec le 4 Juil 2014
Modifié(e) : Star Strider le 4 Juil 2014
Is there any way to find the y values of the intersection points between a scatter and vertical lines?
  1 commentaire
Vaultec
Vaultec le 4 Juil 2014
If possible, Im looking for something that wont require the file exchange, as my script will need to work on multiple copies of matlab

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 4 Juil 2014
Modifié(e) : Star Strider le 4 Juil 2014
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:

Plus de réponses (1)

Ben11
Ben11 le 4 Juil 2014
Modifié(e) : Ben11 le 4 Juil 2014
You might want to use this submission from File Exchange:
I never tried it myself but it looks great.

Community Treasure Hunt

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

Start Hunting!

Translated by