how to mark and print the intersecting coordinates of two lines
    60 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I have x1,y1 and x2, y2 data sets  that give me two lines graphs. 
I want to find the intersecting point of these two lines and and print it on the graph.
I tried following different functions like intesect but did not work. 
Could someone please help me with this?
2 件のコメント
  Matt J
      
      
 2021 年 10 月 10 日
				Since it is discrete data, you need a more formal definition of what it means for them to "intersect". Suppose we have
[x1,y1,x2]=deal([0,1]);
y2=[1,0];
plot(x1,y1,'--x', x2,y2,'-o')
These seem to intersect at (x,y)=[0.5,0.5] but only because I've chosen to connect the points with straight lines instead of some other kind of connecting curve. Is that what you want?
採用された回答
  Star Strider
      
      
 2021 年 10 月 10 日
        Much depends on what ‘x1’, ‘y1’  and the rest are.  
One approach (sssuming multiple intersections, although thiis will also work for only one intersection) would be — 
x1 = linspace(-2, 15);
y1 = 2 + 3*x1;
x2 = linspace(-10, 10);
y2 = (x2-2).^2;
xq = linspace(min([x1,x2],[],2), max([x1,x2],[],2));            % Create Common 'x' Vector
y1q = interp1(x1, y1, xq, 'pchip','extrap');                    % Interpolate To It
y2q = interp1(x2, y2, xq, 'pchip','extrap');                    % Interpolate To It
idx = find(diff(sign(y1q-y2q)));                                % Approximate Indices Of Intersections
for k = 1:numel(idx)
    idxrng = max(1,idx(k)-2) : min(numel(xq),idx(k)+2);         % Index Range
    xi(k) = interp1(y1q(idxrng)-y2q(idxrng), xq(idxrng), 0);    % Interpolate X-Intersection
    yi(k) = interp1(xq(idxrng), y1q(idxrng), xi(k));            % Interpolate Y-Intersection (Either Y-Vector Will Work)
end
Intercepts = [xi; yi]
figure
plot(x1, y1)
hold on
plot(x2, y2)
plot(xi, yi, '+r', 'MarkerSize',10)
hold off
grid
legend('y1','y2','Intersections', 'Location','best')
Experiment to get the desired result.  
.
2 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





