필터 지우기
필터 지우기

Given a matrix of n rows and 2 columns containing the xOy coordinates of n points. Find two points with distance and return the row index of those two points

조회 수: 2 (최근 30일)
can you help me : Given a matrix of n rows and 2 columns containing the xOy coordinates of n points. Find two points with distance and return the row index of those two points

답변 (1개)

DGM
DGM 2021년 9월 7일
Consider:
n = 10; % number of points
d = 7; % distance to match
P = 10*rand(n,2); % example point list
D = sqrt((P(:,1)-P(:,1).').^2 + (P(:,2)-P(:,2).').^2); % distance table from each point to all other points
m = tril(ones(n)); m(m==0) = NaN; % make a triangular mask
Derr = abs(D-d).*m; % calculate error
[Da Na] = min(Derr,[],2); % minimize
[~, Nb] = min(Da,[],1);
% these are the points with distance most closely matching the target
Pa = P(Na(Nb),:)
Pa = 1×2
7.1973 7.1303
Pb = P(Nb,:)
Pb = 1×2
0.8595 9.9292
% show the distance between Pa,Pb
sqrt((Pa(1)-Pb(1)).^2 + (Pa(2)-Pb(2)).^2)
ans = 6.9283

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

태그

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by