View Full Version : [C] Prodotti matrice x vettore
E' possibile in qualche modo effettuare il prodotto di una matrice per un vettore utilizzando la stessa funzione che calcola il prodotto tra due matrici?
mi spiego meglio...data la funzione:
int** Matrix_Product(int** A, int** B, int N, int P, int M)
è possibile utilizzare la stessa funzione essendo B un vettore (int *) o sono costretto a creare B come matrice (int **) di dimensione PX1?
yorkeiser
20-03-2008, 08:54
Certamente, un vettore può essere visto come un caso particolare di una matrice
però provando ad effettuare un casting di una matrice a vettore non è consentito.....dunque sono costretto a dichiarare il vettore come doppio puntatore e basta?
però provando ad effettuare un casting di una matrice a vettore non è consentito.....dunque sono costretto a dichiarare il vettore come doppio puntatore e basta?
Scusami, forse non capisco, ma perchè una matrice dovrebbe essere un "doppio puntatore" (se ho capito bene intendi puntatore a puntatore)?
E' un semplice puntatore al primo elemento, il fatto che debba essere letta "come matrice", viene spiegato al compilatore dal doppio indice.
Dunque ti consiglio semplicemente di passare puntatore al primo elemento e riempimento di riga e colonna di matrice e vettore, and all will be fine :D
P.S. ovviamente nel caso del vettore il numero di righe passato sarà 1, ed ancora più ovviamente dovrai assicurarti che l'operazione di prodotto righe per colonne sia valida per gli argomenti passati!
yorkeiser
20-03-2008, 09:46
Nessuno ti vieta di dichiarare un vettore come int**, ma non vedo perchè piuttosto non dichiari anche le matrici come semplici puntatori ad interi. In questo caso, la formula per accedere all'elemento (i,j) di una matrice m*n è:
int *matrice;
matrice = (int*)malloc(m*n*sizeof(int));
[...]
int elemento_i_j=*(matrice+j*m+i);
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.