Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit:

extracting data around local minima?

Asked by MacKenzie on 18 Nov 2013
Latest activity Edited by MacKenzie on 18 Nov 2013


First, let me give basic framework for the problem: I have data sets that reflect the trajectory of a joystick movement(X,y coordinates in a matrix). The subject needs to move the joystick from neutral past a distance to receive a reward.

I want to extract each pull. One complication is once they reach the target, they stay for a brief moment to collect the reward, just the numbers bounce slightly, giving me many local minima.

I was hoping to have code that reads through the matrix, finds the point where it hits a minimum, stays (perhaps means the noise at the target location), and puts the "pull" into a new matrix or array, etc. There is no consistent number of points between pulls.

I know how to weed out the neutral location data, it's the finding local minima and extracting that is giving me trouble.

Update: I have the local minima. Now, just to get the points in-between each local minima!



Image Analyst on 18 Nov 2013

Can you attach a data file, and post a diagram or figure or some kind of illustration? Why don't you have vectors? Aren't the x and y both vectors? You could turn it into a 1D vector representing the distance from the starting location.

MacKenzie on 18 Nov 2013

yes, good pt; I do have the direction vector, so perhaps using findpeaks on that is a good way to start - let me try and get back to you! thanks for the advice!

MacKenzie on 18 Nov 2013

just an update, I found a nice function for detecting local minima (and maxima) where you can set the threshold:


1 Answer

Answer by Image Analyst on 18 Nov 2013
distanceFromFirstPoint = sqrt((x - x(1)) .^ 2 + (y - y(1)) .^ 2);

1 Comment

MacKenzie on 18 Nov 2013

distanceFromFirstPoint = sqrt((A(:,1) - A(1,1) .^ 2 + (A(:,2)- A(1,2) .^ 2)));

I get imaginary numbers here. something I'm doing wrong to select X vs y?

Image Analyst

Contact us