Matriu transposada

De testwiki
La revisió el 18:30, 12 juny 2022 per imported>Rebot (eliminant text d'indexació automàtica ocult)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)
Salta a la navegació Salta a la cerca
Exemple de transposició d'una matriu 3×2

Si A denota una matriu de n × m elements:

A=(ai,j)=(a1,1a1,2a1,3a1,ma2,1a2,2a2,3a2,ma3,1a3,2a3,3a3,man,1an,2an,3an,m)n×m

aleshores la permutació de files per columnes o viceversa, en la matriu A, produeix la seva matriu transposada A:

A=(a1,1a2,1a3,1an,1a1,2a2,2a3,2an,2a1,3a2,3a3,3an,3a1,ma2,ma3,man,m)m,n

A serà una matriu simètrica, si i només si, n = m i A = A.

Observació sobre la notació. Alguns autors també denoten per A la matriu transposada de la matriu A.

Propietats

Siguin A i B matrius adequades per a les següents operacions, sabem que:

  • (A) = A
  • (A + B) = A + B
  • Per a qualsevol escalar r, (rA) = rA
  • (AB) = BA

Algorisme

En C++

 typedef vector< vector<int> > Matriu;

 void intercanvia(int& x, int& y){
 x ^= y;
 y ^= x; 
 x ^= y;
 }

 void transposar (Matriu& m){
 int s = m.size(); 
 for(int i = 0;i < s; ++i){
 for(int j = 0; j < i; ++j){
 intercanvia(m[i][j],m[j][i]); 
 }
 }
 }