find minima in 3D function/matrix

16 views (last 30 days)
I have data points (Z-values) of a area (-2:0.1:2) and would like to find the positions of both minima.
[X,Y]=meshgrid(-2:0.1:2);
Z=(X.*Y.*exp(-(X.^2)-(Y.^2))); % this is my 3D function
min(Z); % delivers a vector of the minimum in every column
MinV=min(min(Z)); % delivers the value we are looking for
find (Z==MinV); & gives two arguments
Q1: How to interpret the result of find? Q2: It is not the single (?) index of the element in the matrix, how can I get the indices?
(Sorry guys, I was looking for a solution but many problems are more complex.... and I am a beginner) Thany you for suggestions/help!

Accepted Answer

Mischa Kim
Mischa Kim on 18 Mar 2015
Edited: Mischa Kim on 18 Mar 2015
Joachim, use instead
[r,c] = find(Z==MinV) % gives two arguments
r =
28
14
c =
14
28
which will also return two values each (the row and column numbers) since there seem to be two minima. The two values you receive with your code are the indices of the minima if you count through the rows and columns of the matrix
13*41 + 28 = 561
27*41 + 14 = 1121

More Answers (0)

Categories

Find more on Sparse Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!