Estoy tratando de escribir un script en MATLAB que encuentre la ubicación del valor mínimo de una matriz 2D de números. Estoy seguro de que solo hay 1 mínimo en este conjunto, por lo que tener múltiples ubicaciones en el conjunto con el mismo valor mínimo no es un problema. Puedo encontrar el mínimo valor de la matriz, pero en una matriz de 30x30, me gustaría saber qué fila y columna que el valor mínimo es de.¿Cómo hacer que MATLAB muestre el índice del valor mínimo en una matriz 2D?
Respuesta
Como una versión alternativa, se combinan min para obtener el valor mínimo y volver a encontrar el índice, si ya ha calculado el mínimo, entonces sólo tiene que utilizar encontrar.
>> a=magic(30);
>> [r,c]=find(a==min(min(a)))
r =
1
c =
8
O dependiendo de cómo desea utilizar la información de ubicación es posible que desee definirlo con una matriz lógica en su lugar, en cuyo caso direccionamiento lógico se puede utilizar para darle una tabla de verdad.
>> a=magic(30);
>> locn=(a==min(min(a)));
Mira la descripción de la función min. Puede devolver el valor mínimo y el índice. Para una matriz bidimensional, simplemente llámala dos veces.
A = rand(30); % some matrix
[minColVal, minColIdx] = min(A);
[minRowVal, minRowIdx] = min(minColVal);
minVal = minRowVal;
minValIdx = [minColIdx(minRowIdx), minRowIdx];
Editar: @ solución de B3 es probablemente computacionalmente más elegante (más rápido y requiere menos espacio temporal)
Se podría formar de nuevo la matriz de un vector, encontrar el índice del mínimo utilizando MIN y luego convertir este índice lineal en un índice de la matriz:
>> x = randi(5, 5) x = 5 4 4 2 4 4 2 4 5 5 3 1 3 4 3 3 4 2 5 1 2 4 5 3 5 >> [value, index] = min(reshape(x, numel(x), 1)); >> [i,j] = ind2sub(size(x), index) i = 3 j = 2
+1 elegant solution! – groovingandi
puede usar x (:) en lugar de cambiar la forma() para guardar algunos caracteres. – zellus
@zellus: ¡Gracias por recordarme! Tenía la sensación de que había otra forma de hacerlo. –
Para encontrar valores mínimos y máximos en un subconjunto de un vector - Si A es un vector y "límite inferior" y "límite superior" son los límites del vector entre los que usted necesita para encontrar el máximo (o mínimo) valor, a continuación, utilizar este comando -
[Value,Index]=min(A(lowerBound:upperBound));
esto devuelve "valor" como el valor máximo o mínimo entre A (límite inferior) y A (uppedBound) y "Index" como con "límite inferior", como el offset. Entonces, para encontrar el índice absoluto, debe agregar "lowerBound" al índice.
Una solución alternativa que utiliza una función en línea funcionará.
>> min_index = @(matrix) find(matrix == min(reshape(matrix, [1,numel(matrix)])));
>> a=magic(30);
>> [r,c]=min_index(a)
r =
1
c =
8
- 1. ¿Cómo puedo encontrar el índice del valor máximo en una columna de matriz en MATLAB?
- 2. ¿Cómo encontrar el índice del elemento con un valor mínimo?
- 3. Ruby: ¿Cómo encontrar el índice del elemento de matriz mínimo?
- 4. ¿Cómo puedo encontrar el máximo o el mínimo de una matriz multidimensional en MATLAB?
- 5. Encuentre el valor mínimo distinto de cero en una matriz
- 6. ¿Cómo aplicar ventanas móviles a una matriz 2D en MATLAB?
- 7. Devuelve el índice del valor más alto en una matriz
- 8. hallazgo clave del valor mínimo en una matriz asociativa
- 9. ¿Cómo encontrar el valor mínimo en una matriz numpy?
- 10. Producir matriz 2D de una matriz 1D en MATLAB
- 11. ¿Cómo hacer una matriz nubosa 2d una matriz 3d?
- 12. Intentando hacer una matriz 2D de listas
- 13. Convertir el índice de matriz 1D en el índice de matriz 2D
- 14. rendimiento del índice de mayor valor en una matriz
- 15. ¿Cómo obtengo las dos últimas dimensiones de una matriz N-D como una matriz 2D?
- 16. ¿Cómo puedo hacer una matriz 2D en Lua?
- 17. Hacer que la pestaña del navegador muestre una notificación
- 18. ¿Cómo puedo hacer que un DateTimePicker muestre una cadena vacía?
- 19. ¿Cómo hacer que QGraphicsItem muestre el fondo en un QGraphicsScene?
- 20. ¿Cómo puedo hacer que Eclipse muestre archivos *.
- 21. valor de índice de matriz
- 22. ¿Actualizar vista de lista para que muestre el índice seleccionado?
- 23. Encontrar elemento mínimo en matriz, y su índice de
- 24. dos matrices que definen coordenadas 2d, como índices de matriz, en matlab/octave
- 25. encontrar el valor mínimo en int matriz con C#
- 26. ¿Cómo hacer que hgweb muestre repositorios en una jerarquía?
- 27. ¿Cómo puedo hacer que mi UIPickerView muestre etiquetas después del valor seleccionado?
- 28. F # Crear matriz 2D
- 29. ¿Cómo creo una matriz 2D en Perl?
- 30. ¿Encontrando el valor mínimo del grupo máximo?
¡Gracias! exactamente lo que necesitaba! –