come trasporre una matrice 2D in posizione?Come trasporre la matrice multidimensionale in posizione
risposta
for (int i=0; i<n; i++) {
for (int j=0; j<i; j++) {
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
ATTENZIONE! Questo è corretto solo per gli array quadrati. Vedi il link a Wikipedia di @ dlb sotto per un'implementazione con una matrice non quadrata. – Mayank
Non è stata specificata una lingua, ma in generale, ciò che si fa è:
let a be your array.
for each i,j with i<j switch a[i,j] with a[j,i]
Per ottenere la trasposta di una matrice quadrata abbiamo bisogno di considerare gli elementi sopra la diagonale principale o al di sotto di esso e scambia ognuno con il suo riflesso lungo la diagonale principale:
for i->0 to N-1
for j->i+1 to N-1
swap matrix[i][j] with matrix[j][i]
Perché preoccuparsi? Basta scambiare gli indici in qualsiasi dichiarazione di accesso.
C'è una grave penalizzazione delle prestazioni per l'accesso agli array 2D nell'ordine "errato": spesso è meglio pagare il prezzo di una trasposizione per ottenere i vantaggi dell'accesso alla memoria contigua (passo unitario). –
Wikipedia aveva un articolo Trasposizione matrice sul posto. L'articolo tratta le matrici non quadrate.
Questo sembra funzionare bene:
function transpose(a)
{
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}
in C#
string[,] Value;
//fill Value
//create transposed array
ValueAux = new string[Value.GetLength(1),Value.GetLength(0)];
for (i = 0; i < Value.GetLength(0); i++)
{
for (j = 0; j < Value.GetLength(1); j++)
{
Valueaux[j, i] = Value[i, j];
}
}
Il risultato è in ValueAux
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i!=j && j>i)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
(N
è la dimensione del tuo array)
- 1. Come trasporre la matrice usando uBLAS?
- 2. Javascript: ordina la matrice multidimensionale
- 3. Matrice multidimensionale in Python
- 4. Leggere la lista piatta in matrice/matrice multidimensionale in python
- 5. creare trasporre matrice utilizzando php
- 6. Matrice simbolica multidimensionale in Python
- 7. Come creare una matrice multidimensionale in swift?
- 8. Zero lunghezza multidimensionale matrice
- 9. Determinante della matrice multidimensionale
- 10. Come trasporre una matrice in modo ottimale usando blas?
- 11. ottenere dimensione della matrice multidimensionale in rubino
- 12. Crea dinamica di matrice multidimensionale
- 13. typedef di una matrice multidimensionale?
- 14. Come ottenere un data.frame in una matrice multidimensionale in R?
- 15. Come scrivere una matrice multidimensionale in un file di testo?
- 16. Come creare e utilizzare una matrice multidimensionale in Scala?
- 17. Python: come immagazzinare una matrice multidimensionale numpy in PyTables?
- 18. Come impostare una matrice multidimensionale in sessione con le rotaie
- 19. Come trasporre oggetto in underscorejs
- 20. Rimuovi genitore nella matrice multidimensionale PHP
- 21. Algoritmo SIMD ottimale per ruotare o trasporre una matrice
- 22. sorta di matrice multidimensionale da specifica chiave
- 23. Trasporre un array 2D
- 24. SQL - Come trasporre?
- 25. In looping attraverso una matrice multidimensionale in Handlebars.js
- 26. Come si estrae una colonna da una matrice multidimensionale?
- 27. Inserimento di una matrice php multidimensionale in un database mysql
- 28. come trasporre una matrice in r se il solito `t()` non funziona?
- 29. GLM: come trasporre un vettore?
- 30. Trovare la posizione di un elemento in una matrice bidimensionale?
quadrato o no? fa una grande differenza – Anycorn
@aaa: Trasporre una matrice non quadrata in posizione non ha molto senso. – Jens
Anche se dipende dalla rappresentazione (ad esempio usando un singolo array di dimensioni N * M) potrebbe essere fatto. –