image thumbnail

MagnetGInput

version 1.0.0.0 (1.01 KB) by Michael Robbins
Returns the position of the closest datapoint to your mouse click.

5.6K Downloads

Updated 18 Apr 2003

No License

MAGNETGINPUT(h,N,test)
Given the handle of the plot, h, MAGNETGINPUT will either
return the position clicked (upon right button press) or
the location of the datapoint closest to the position
clicked (upon left button press)

If N is provided, MagnetGInput will allow N button clicks

The closest datapoint is determined by minimizing the
distance which is weighted by the scale of the figure,
such that if your figure is [0:1:0:1000], the distance
is

sqrt(((X-x)./1).^2+((Y-y)./1000).^2);

It returns the abscissa and ordinate of the point clicked
or datapoint closest to that point as well as the distance
from the returned position to the click.

If TEST is set true, MAGENETGINPUT will draw a red line
from the click to the closest datapoint and a red circle
using the click as the origin and the distance to the
closest datapoint as a radius

USAGE:

y=sin([.1:.1:10])+rand(1,100).*0.1;
h=plot([1:100],y,'-');
[xin,yin,rin]=MagnetGInput(h);
% click on your plot with the LEFT mouse button
line(xin+[0 10],yin+[0 .5],'color','r');
text(xin+10,yin+.5,{'This datapoint','was the closest to','your mouse click'},'color','r');
hold on;plot(xin,yin,'ro');

IT'S NOT FANCY BUT IT WORKS.

Cite As

Michael Robbins (2022). MagnetGInput (https://www.mathworks.com/matlabcentral/fileexchange/3265-magnetginput), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!