PDA

View Full Version : Prodotto tra matrici.


Vandred88
07-04-2005, 16:20
ragazzi ho da fare il prodotto tra matrici. ma nn mi viene!! come devo fare??
cioè io ho svolto tutto l'es. di creare due matrici con:

la riga della prima mat deve essere uguale alla colonna della seconda matrice.
ma nn riesco a fare il prodotto tra loro e mettere il risultato in un'altra matrice.
es:

100 | 120
012 | 102
133 | 021

mat[0;0] * mat2[0;0] + mat[0;1] * mat2[1;0] + mat[0;2] * mat2[2;0]

questa forumla equivale al risultato della prima cella della matrice prodotto.
come fo???
aiuto!

Ziosilvio
07-04-2005, 17:33
Il prodotto di matrici è un esercizio classico per mettere alla prova la capacità di costruire strutture dati opportune.

Se tutte le matrici sono array statici, la soluzione è abbastanza semplice e si riconduce al prodotto scalare di due vettori, che sai sicuramente fare.

Se hai usato qualcosa di più complicato, devi darci più informazioni...

Fenomeno85
07-04-2005, 19:18
l'hai scritta osserva gli indici come si muovono è una cazzata sto esercizio ;)

~§~ Sempre E Solo Lei ~§~

Fenomeno85
07-04-2005, 19:20
cmq da algebra ricordati che le matrici possono esere moltiplicate solo se:

(m x n) * (n x p) = (m x p)

questo ti da la dimensione della matrice finale ;)

~§~ Sempre E Solo Lei ~§~

Vandred88
08-04-2005, 21:00
si ma in pratica io ho fatto cosi
mat3[i][j]=+mat[i][j]*mat[j][i]

xò nn fa

Fenomeno85
09-04-2005, 10:47
te il codice in c per il prodotto di matrici:


void calc (int mat1[R1][R],int mat2[R][C2],int mat3[R1][C2]){
for (int i=0;i<R1;i++)
for (int j=0;j<R;j++)
for (int k=0;k<C2;k++)
mat3[i][k] += mat1 [i][j]*mat2[j][k];
}


dove R1 = numero righe della matrice 1, R è il valore comune di colonne C2 = è il numero di colonne delle matrice 2.

~§~ Sempre E Solo Lei ~§~

Vandred88
09-04-2005, 14:30
grazie mille! adesso funge benissimo.
avevo fatto un piccolo errore sugli indici, come avevo scritto prima.