find minima in 3D function/matrix

14 visualizzazioni (ultimi 30 giorni)
Joachim Schmid
Joachim Schmid il 18 Mar 2015
Modificato: Mischa Kim il 18 Mar 2015
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!

Risposta accettata

Mischa Kim
Mischa Kim il 18 Mar 2015
Modificato: Mischa Kim il 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

Più risposte (0)

Categorie

Scopri di più su Contour Plots in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by