MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

# How to get figure data into a variable from mouse click? (alternative to ginput?)

Asked by Mel on 20 Apr 2013

Hi!

This is what I would like to do:

I have data that contains some real experimental values and -999.00 (no data available for that time) and I want to interpolate across the "missing" data. However, the user may not want to interpolate across the entire time frame that the data is displayed for. So I thought I would lay it out like this:

```% t is time and x is the corresponding data
% Plot the data so the user can see it, red if it is a missing data point, blue otherwise:
```
```figure
hold on
for i=1:length(x)
if x(i)==-999.00
plot(t(i),0,'r^')
else
plot(t(i),x(i),'bo')
end
end
hold off
```
```% Get starting values for interpolation
[t1,x1]=ginput(1);
```
```% Interpolate over necessary sections using t1,x1 as the first data point.
```

The only problem with using ginput is it grabs the value of the user's click, and not the closest plotted data point to the user's click. Is there a way of getting [t1,x1] to be the values of the closest data point?

Thanks!

## Products

No products are associated with this question.

Answer by Image Analyst on 21 Apr 2013

Can't you just use the min function?

```% Get difference between the t array and where they clicked.
diffs = abs(t - t1);
% Find out where that difference is minimum.
[minDiff, indexAtMin] = min(diffs);
% Now we know the index (the element number)
% so find the value of t at that index.
tClosestToUserClick = t(indexAtMin);
```

I'm assuming you know how to interpolate just the -999 points, right (since you didn't ask about that specifically)?

## 1 Comment

Mel on 21 Apr 2013

Actually, knowing the index of the point that the user clicked on is better than knowing the value for me. I didn't know you could get the index from min!

And yes, I am okay with the interpolation.

Answer by per isakson on 21 Apr 2013

See "Data Cursor" in the on-line help.