|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
[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?
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
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? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Certamente, un vettore può essere visto come un caso particolare di una matrice
__________________
Il sole è giallo |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
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?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
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 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!
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
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 è:
Codice:
int *matrice; matrice = (int*)malloc(m*n*sizeof(int)); [...] int elemento_i_j=*(matrice+j*m+i);
__________________
Il sole è giallo |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Mar 2008
Città: Civitanova Marche
Messaggi: 32
|
ok, grazie!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:27.




















