MATLAB Answers

Select a point on the graph

10 ビュー (過去 30 日間)
luca
luca 2019 年 10 月 9 日
コメント済み: luca 2019 年 10 月 9 日
Hi given the following code,
figure(1);
scatter(x(:,1),x(:,2));
hold on;
scatter(member_value(:,1),member_value(:,2),'r');
legend({'Data','Pareto Frontier'})
I obtain a graph like this
untitled.jpg
And I want to select the red point that is closest to the origin.
May someone help me with the code?
  2 件のコメント
luca
luca 2019 年 10 月 9 日
Yes the idea is to use something like pythagoras, that able me to find the point with the minimum distance from the origin. But do you know how can I implement it?

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

採用された回答

Adam Danz
Adam Danz 2019 年 10 月 9 日
編集済み: Adam Danz 2019 年 10 月 9 日
To find the coordinate closest to the origin (0,0),
d = hypot(member_value(:,1),member_value(:,2));
[~, minIdx] = min(d);
plot(member_value(minIdx,1),member_value(minIdx,2),'ks','MarkerSize',12);
hypot() method avoids potential under/overflow: https://www.mathworks.com/help/matlab/ref/hypot.html
  8 件のコメント
luca
luca 2019 年 10 月 9 日
Thanks Adam ! now its clear how it works

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

その他の回答 (1 件)

Turlough Hughes
Turlough Hughes 2019 年 10 月 9 日
You can do the following:
[~,ind]=min(sqrt(member_value(:,1).^2+member_value(:,2).^2)); %find index for point closest to origin
hold on; plot(member_value(ind,1),member_value(ind,2),'.k');
Note, that if x was arranged as a row vector this will not work, but this is not the case for you.

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by