vectores valor una posicion matriz llenar identidad extraer elementos datos columna almacenar agregar arrays matlab find min

arrays - una - posicion de un valor en un vector matlab



Matlab, encuentre el índice de valor mínimo con la condición de que debe ser negativo (2)

En una matriz dada, necesito encontrar el índice del valor mínimo en una matriz, pero solo si es negativo.

Por ejemplo: [1, 2, 3, 4] no devolvería ningún índice

y [1, 4, -7, -2] devolverían 3

Estaba pensando que debe ser simple con el comando find() , pero no pude encontrar la manera de usarlo para esta situación específica.


A veces, tirar todo en una expresión vectorial complicada no es óptima.

En este caso, espero que sea mucho más rápido evitar una llamada para find .

function [i] = most_negative_index(x) [mn, i] = min(x); if mn >= 0 i = []; end end


Supongamos que la matriz de entrada es A , esto debería hacer el truco:

find(A==min(A) & A<0)

Por ejemplo:

>> A = [1, 2, 3, 4]; >> B = [1, 4, -7, -2]; >> find(A==min(A) & A<0) ans = Empty matrix: 1-by-0 >> find(B==min(B) & B<0) ans = 3