MATLAB Answers

Nommah
0

Find the coordinates of a point chosen on a plot

Nommah
さんによって質問されました 2019 年 11 月 12 日
最新アクティビティ Nommah
さんによって コメントされました 2019 年 11 月 15 日 3:50
Hello,
So I've been using ginput to select points on a plot
My plot consists of time(x) and velocity(y).
Below is my user-selected points.
[Userx,Usery] = ginput(1);
However, I noticed it doesn't actually select points from the voltage vs. time graph and instead just a point in the figure screen.
How can I get the nearest data point of the actual plot?
I've found one solution is to use this user created script file:
https://www.mathworks.com/matlabcentral/fileexchange/3265-magnetginput

  0 件のコメント

サインイン to comment.

製品


リリース

R2017b

2 件の回答

darova
回答者: darova
2019 年 11 月 14 日 10:14
 採用された回答

Short example
x = linspace(0,2,20)'; % generate some data
y = sin(x);
plot(x,y,'.-b')
xy = ginput(1); % get point
[~,ix] = min(pdist2([x y],xy)); % find closest point
hold on
plot(x(ix),y(ix),'or') % display closest point
hold off

  1 件のコメント

Nommah
2019 年 11 月 15 日 3:50
Awesome I pretty much used a very simple formula which does the same thing you have listed above.
[x, ~] = ginput(1); %xmouse, ymouse
[~, xidx] = min(abs(time-x)); %closest index
xx = time(xidx); %extract

サインイン to comment.


Fangjun Jiang
回答者: Fangjun Jiang
2019 年 11 月 12 日

Use data cursor, set "SnapToDataVertex" to be "on" and then get the position. See example in
doc datacursormode

  1 件のコメント

Nommah
2019 年 11 月 13 日 18:26
Is there a way to do this using ginput, at least where I can see the x-line and y-line of the crosshair which chooses the point?

サインイン to comment.



Translated by