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