Finding a centre and plotting a sphere

3 ビュー (過去 30 日間)
Adin Adac
Adin Adac 2021 年 3 月 22 日
コメント済み: Adin Adac 2021 年 3 月 22 日
Hi, I'm new to matlab and completely lost on this one. I have to make a function which evaluates Euclidean distances between two sets of points, finds a sphere with centre at the middle-point between two most distant points and calculate its radius.
Basically I have 2 sets of points, from which I form the distance matrix D by using
D = sqrt( bsxfun(@plus,sum(P.^2,2),sum(R.^2,2)') - 2*(P*R') )
centre of the sphere should be between the 2 points with the largest distance between them. How to find that point?

採用された回答

David Hill
David Hill 2021 年 3 月 22 日
M=0;%point sets p and q assumed to be in matrix form, for example [1 2 3;4 5 6]
for k=1:size(q,1)
[m,idx]=max(sqrt(sum((p-q(k,:)).^2,2)));
if m>M
M=m;
points=[p(idx,:);q(k,:)];
end
end
radius=M/2;
center=sum(points)/2;
  1 件のコメント
Adin Adac
Adin Adac 2021 年 3 月 22 日
This works perfectly, thank you!

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

その他の回答 (1 件)

Matt J
Matt J 2021 年 3 月 22 日
編集済み: Matt J 2021 年 3 月 22 日

カテゴリ

Help Center および File ExchangeSTL (STereoLithography) についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by