Sto provando a scrivere uno script in MATLAB che trova la posizione del valore minimo di una matrice 2D di numeri. Sono certo che c'è solo un minimo in questo array, quindi avere più posizioni nell'array con lo stesso valore minimo non è un problema. Posso trovare il valore minimo della matrice, ma in una matrice 30x30, desidero sapere quale riga e colonna valore minimo è in.Come ottenere MATLAB per visualizzare l'indice del valore minimo in un array 2D?
risposta
in una versione alternativa, si combinano minuti per raggiungere il valore minimo e trovare per restituire l'indice, se hai già calcolato il minimo poi basta usare trovare.
>> a=magic(30);
>> [r,c]=find(a==min(min(a)))
r =
1
c =
8
O a seconda di come si desidera utilizzare le informazioni sulla posizione si consiglia di definirla con una matrice logica, invece, nel qual caso indirizzamento logico può essere utilizzato per dare una tabella di verità.
>> a=magic(30);
>> locn=(a==min(min(a)));
un'occhiata alla descrizione della funzione min. Può restituire il valore minimo e l'indice. Per un array bidimensionale, chiamalo due volte.
A = rand(30); % some matrix
[minColVal, minColIdx] = min(A);
[minRowVal, minRowIdx] = min(minColVal);
minVal = minRowVal;
minValIdx = [minColIdx(minRowIdx), minRowIdx];
Edit: @ soluzione b3 è probabilmente computazionalmente più elegante (più veloce e ha bisogno di meno spazio temporaneo)
Si potrebbe rimodellare la matrice per un vettore, trovare l'indice del minimo utilizzando MIN e poi convertire questo Indice lineare in un indice di matrice:
>> 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 soluzione elegante! – groovingandi
puoi usare x (:) invece di rimodellare() per salvare alcuni caratteri. – zellus
@zellus: Grazie per avermelo ricordato! Ho avuto questa sensazione fastidiosa che ci fosse un altro modo per farlo. –
Per trovare min o max in un sottogruppo di un vettore - Se A è un vettore e "lowerbound" e "upper bound" sono i limiti del vettore tra i quali è necessario trovare il massimo (o min valore), quindi utilizzare questo comando -
[Value,Index]=min(A(lowerBound:upperBound));
Ciò restituisce "valore" come il valore minimo o massimo tra A (limiteinferiore) e A (uppedBound) e "Indice" come con "limite inferiore", come l'offset. Quindi, per trovare l'indice assoluto, è necessario aggiungere "lowerBound" all'indice.
Una soluzione alternativa che utilizza una funzione inline funzionerà.
>> min_index = @(matrix) find(matrix == min(reshape(matrix, [1,numel(matrix)])));
>> a=magic(30);
>> [r,c]=min_index(a)
r =
1
c =
8
- 1. Produzione di array 2D da un array 1D in MATLAB
- 2. Percorso minimo labirinto Java 2d int array
- 3. Indicizzazione di array 2D in MATLAB
- 4. "Array of array" in MATLAB?
- 5. Ottenere valore minimo nome del campo utilizzando l'aggregazione in Django
- 6. due array che definiscono le coordinate 2D, come indici di array, in MATLAB/OTTAVE
- 7. Come ottenere una colonna da un array java 2D?
- 8. Seleziona in un array 2D
- 9. Come inizializzare un array di array 2D?
- 10. Ricerca del valore minimo in una mappa
- 11. Ottenere la lunghezza dell'array di un array 2D in Java
- 12. Trasporre un array 2D
- 13. C# dizionario ottenere la chiave del valore minimo
- 14. memoria dinamica per array 2D 2D
- 15. OBJ-C: Ottenere il valore minimo/massimo in un NSMutableArray
- 16. Accesso a un array 1D come array 2D in C++
- 17. Come ottenere valore casuale da un array
- 18. 2D array $ Indice in AngularJS
- 19. algoritmo per trovare il numero minimo di rettangoli che coprono alcuni elementi di un array 2D
- 20. F # Crea array 2D
- 21. Come ottenere l'immagine speculare di un array (MATLAB)?
- 22. Array 2D in Kotlin
- 23. come ottenere i dati dell'istogramma in Matlab
- 24. Valore minimo nell'intervallo
- 25. Java 8: trovare l'indice del valore minimo da un elenco
- 26. Slice array 2d in array 2d più piccoli
- 27. Come rimuovere un sottoinsieme di array 2d?
- 28. Come disegnare vettori (vettori fisici 2D/3D) in MATLAB?
- 29. trovare il valore minimo in int array con C#
- 30. Python - il modo migliore per impostare una colonna in un array 2d su un valore specifico
Grazie !! esattamente quello di cui avevo bisogno! –