Matriu transposada

De Viquipèdia
Dreceres ràpides: navegació, cerca
Exemple de transposició d'una matriu 3×2

Si A denota una matriu de n × m elements:


A = (a_{i,j}) =
\begin{pmatrix}
 a_{1,1} & a_{1,2} & a_{1,3} & \cdots & a_{1,m}\\
 a_{2,1} & a_{2,2} & a_{2,3} & \cdots & a_{2,m}\\
 a_{3,1} & a_{3,2} & a_{3,3} & \cdots & a_{3,m}\\
 \vdots & \vdots & \vdots & \ddots & \vdots\\
a_{n,1} & a_{n,2} & a_{n,3} & \cdots & a_{n,m}\\
\end{pmatrix}
\in \mathcal M_{n\times m}

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


A^\top = 
\begin{pmatrix}
 a_{1,1} & a_{2,1} & a_{3,1} & \cdots & a_{n,1}\\
 a_{1,2} & a_{2,2} & a_{3,2} & \cdots & a_{n,2}\\
 a_{1,3} & a_{2,3} & a_{3,3} & \cdots & a_{n,3}\\
 \vdots & \vdots & \vdots & \ddots & \vdots\\
a_{1,m} & a_{2,m} & a_{3,m} & \cdots & a_{n,m}\\
\end{pmatrix} \in \mathcal M_{m,n}

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

Propietats[modifica | modifica el codi]

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[modifica | modifica el codi]

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]); 
}
}
}