Prodotto di due matrici
Salve devo scrivere uno script per matlab che mi consenta il calcolo del prodotto di due matrici. Lo script da me formulato è il seguente:
[m,n]=size(A);
[j,k]=size(B);
if n~=j
error('Matrici di dimensioni inadeguate')
else
P=zeros(m,k);
for m=1:size(A);
for k=1:size(B);
for n=1:size(B);
P(m,k)=P(m,k)+A(m,n)*B(n,k);
end
end
end
end
ma l'ultima colonna non è calcolata correttamente. Dove sbaglio?
[m,n]=size(A);
[j,k]=size(B);
if n~=j
error('Matrici di dimensioni inadeguate')
else
P=zeros(m,k);
for m=1:size(A);
for k=1:size(B);
for n=1:size(B);
P(m,k)=P(m,k)+A(m,n)*B(n,k);
end
end
end
end
ma l'ultima colonna non è calcolata correttamente. Dove sbaglio?
Risposte
Sei sicuro che
Ti dia quello che cerchi?
for k=1:size(B); for n=1:size(B);
Ti dia quello che cerchi?
non devo mettere size perchè matlab non capisce che deve fare riferimento alle righe o colonne giusto?
Non so cosa faccia MATLAB, ma io al posto suo sarei confuso. Tu prova a cambiare quel pezzo. Visto che m,n,j.k sono già assegnati usa magari m1,n1,j1,k1 come indici nei cicli e vedi cosa succede.
Quelle righe non hanno senso. Tra l'altro hai già visto che size ritorna una array bidimensionale e hai già memorizzato il loro valore in variabili che poi riscrivi. Detto questo in matlab dovresti evitare di usare for (anche se il metodo giusto consisterebbe nel moltiplicare le matrici tra di loro quindi sarebbe un po' come barare).