If possible, Im looking for something that wont require the file exchange, as my script will need to work on multiple copies of matlab
finding intersection point between a scatter and vertical lines
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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?
Réponse acceptée
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:
0 commentaires
Voir également
Catégories
En savoir plus sur Scatter Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!