[MatLab] Matrice trasposta con un ciclo for

giocasi95
Scrivere un algoritmo MATLAB che converta una qualsiasi matrice A di 3 righe e 5 colonne
nella sua matrice trasposta B (5 righe e 3 colonne) senza utilizzare l’operatore di
trasposizione (‘) o altre funzioni built-in di MATLAB, bensì utilizzando una struttura di controllo
iterativa

Risposte
apatriarca
Si tratta semplicemente di scrivere due cicli annidati e usare la definizione di matrice trasposta. In cosa incontri difficoltà?

giocasi95
Scrivendo il codice non riesco ad associare il valore all’interno della matrice ai suoi relativi indici. In questo modo quando devo iniziare il ciclo mi blocco. Nonostante sappia che sono due cicli, uno dentro l’altro, e che l’operazione per la matrice trasposta è l’inversione di righe e colonne.

apatriarca
È più facile se scrivi i valori in una seconda matrice invece di fare la trasposta "in place". Se scrivi sulla stessa matrice devi stare attento a non usare valori che hai già cambiato. Il modo più semplice è cambiare due valori nella stessa iterazione e fare il ciclo in modo che il secondo indice sia sempre maggiore o uguale al primo.

giocasi95
Riusciresti av tradurlo in linguaggio matlab? Perché non riesco a copiarlo in una nuova matrice

apatriarca
Perché non provi invece a mostrare un qualche tuo tentativo? Mi sembra abbastanza inutile mostrarti la soluzione.

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