Matlab scambio righe e colonne matrice

Linux1987
Supponiamo data una matrice A in matlab di voler scambiare righe e colonne : siano r1 r2 indici di riga e c1 c2 indici di colonna. Se scrivo A([r1 r2],:)=A([r2 r1],:) scambio la riga r1 con quella r2 , dopo di che scrivo A(:,[c1 c2])=A(:,[c2 c1]) e scambio la colonna c2 con c1. Ma se scrivo A([r1 r2],[c1 c2])=A([r2 r1],[c2 c1]) cosa sto facendo ? Grazie in anticipo

Risposte
apatriarca
Ma stai semplicemente calcolando la trasposta della matrice, operazione per il quale esiste un operatore apposito (l'apostrofo). Devi cioè semplicemente scrivere:
A = A';

Linux1987
No assolutamente , la trasposta consiste nello scambiare le righe con le colonne, non ho scritto da nessuna parte che la matrice è 2x2 , potrebbe anche essere 10x10, io coinvolgo nell'operazione comunque solo due righe e due colonne. Comunque ho risolto, praticamente nel secondo caso si seleziona una sottomatrice della matrice di partenza!

apatriarca
Scusa, non avevo letto con attenzione, mi ero cioè fermato alla prima frase. Comunque sì, inserendo una lista di indici si estrae una sottomatrice formata dagli elementi i cui indici sono quelli passati. Per scambiare le righe e colonne intere devi per forza scrivere le due righe separatamente.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.