[Prodotto righe per colonne]
Come faccio un'applicazione in java che fa il prodotto righe per colonne fra matrici ? Io finora ho scritto questo...
class ProdottoMatrici {
public static void main(String[] args) {
int[][] a,b;
int i,j,l,z,f,d,m,n;
System.out.println("Inserire l'ordine della prima matrice");
m = Lettore.in.leggiInt();
n = Lettore.in.leggiInt();
a = new int[m][n];
for (i=0; i<m; i++) {
for(j=0; j<n; j++)
a[i][j] = Lettore.in.leggiInt();
}
System.out.println();
System.out.println("Inserire l'ordine della seconda matrice");
f = Lettore.in.leggiInt();
d = Lettore.in.leggiInt();
System.out.println();
b = new int[f][d];
for (l=0; l<f; l++) {
for(z=0; z<d; z++)
a[l][z] = Lettore.in.leggiInt();
}
nuovo(a,b,m,d);
public static int[][] nuovo(int[][] h, int[][] l, int w, int p) {
int[][] c;
int i,j;
c = new int[w][p];
for (i=0; i<h.length; i++)
prodotto(h[i], l)
public static int[][] prodotto(int[] a, int[][] b) {
int i;
for (i=0; i<a.length; i++)
a[i]*b[i]
Risposte
Non capisco più di tanto cosa tu stia cercando di fare. prodotto riceve in ingresso un vettore (suppongo riga) a e una matrice b e restituisce una matrice. Ma se fai il prodotto tra un vettore riga e una matrice il risultato sarà un vettore riga e non una matrice.. Inoltre non sembri essere tu stesso sicuro su come utilizzare questo metodo.
In realtà per implementare il prodotto riga per colonna è sufficiente seguire la definizione in cui la sommatoria è sostituita da un ciclo. La struttura di base sarà quindi qualcosa tipo:
Ovviamente devi aggiungere dei test per verificare se le dimensioni sono concordi (e inserire la formula corretta dopo il += ).
In realtà per implementare il prodotto riga per colonna è sufficiente seguire la definizione in cui la sommatoria è sostituita da un ciclo. La struttura di base sarà quindi qualcosa tipo:
for (i = 0; i < w; ++i) {
for (j = 0; j < p; ++i) {
c[i][j] = 0.0;
for (k = 0; k < h[0].length; ++k) {
c[i][j] += ...;
}
}
}
Ovviamente devi aggiungere dei test per verificare se le dimensioni sono concordi (e inserire la formula corretta dopo il += ).
ti ringrazio!
"apatriarca":
Non capisco più di tanto cosa tu stia cercando di fare. prodotto riceve in ingresso un vettore (suppongo riga) a e una matrice b e restituisce una matrice. Ma se fai il prodotto tra un vettore riga e una matrice il risultato sarà un vettore riga e non una matrice.. Inoltre non sembri essere tu stesso sicuro su come utilizzare questo metodo.
In realtà per implementare il prodotto riga per colonna è sufficiente seguire la definizione in cui la sommatoria è sostituita da un ciclo. La struttura di base sarà quindi qualcosa tipo:
for (i = 0; i < w; ++i) { for (j = 0; j < p; ++i) { c[i][j] = 0.0; for (k = 0; k < h[0].length; ++k) { c[i][j] += ...; } } }
Ovviamente devi aggiungere dei test per verificare se le dimensioni sono concordi (e inserire la formula corretta dopo il += ).
public static int[][] nuovo(int[][] a, int[][] b, int c, int d) {
int[][] x;
x = new int[c][d];
return x
} Ho fatto questo metodo affinchè il nuovo array di array abbia il numero di righe del primo array di array e il numero delle colonne del secondo array di array.. .Però ora non riesco a moltiplicare la prima riga per la prima colonna...