Gambas-it

Gambas3 => Programmazione => Topic aperto da: paociao - 06 Aprile 2013, 11:58:55

Titolo: Prodotto tra matrici
Inserito da: paociao - 06 Aprile 2013, 11:58:55
Salve gamberetti!
Scusate la domanda che vi sembrerà molto più che banale.. :-[
devo fare il prodotto tra una matrice di dimensione 1x11 e un'altra che è 11x15, come si fa? ???
Titolo: Re: Prodotto tra matrici
Inserito da: Berserker79 - 06 Aprile 2013, 13:21:58
Ciao, credo che con due cicli for uno annidato nell'altro dovresti risolvere.

For Each Variabile1 In Matrice1
    For Each Variabile2 In Matrice2
        Variabile1*Variabile2
    Next
Next
Titolo: Re: Prodotto tra matrici
Inserito da: Top Fuel - 06 Aprile 2013, 15:27:15
Se ti può servire:
http://it.wikipedia.org/wiki/Moltiplicazione_di_matrici (http://it.wikipedia.org/wiki/Moltiplicazione_di_matrici)
Titolo: Re: Prodotto tra matrici
Inserito da: paociao - 06 Aprile 2013, 17:26:18
Vi ringrazio delle risposte. So che vi sembrerà assurdo, ma il mio problema è a monte: come si definisce una matrice??
avevo provato così:

Codice: [Seleziona]
Amatrix As Integer[1,11]
Bmatrix As Integer[11,15]

Public Sub Form_Open()
amatrix = Array(qui ho scritto, separati da una virgola, gli elementi che intendevo piazzare nella matrice A)
END

Evidentemente non è corretto, ma non ho capito come si deve definire!
Titolo: Re: Prodotto tra matrici
Inserito da: vuott - 06 Aprile 2013, 18:10:22
Vi ringrazio delle risposte. So che vi sembrerà assurdo, ma il mio problema è a monte: come si definisce una matrice??

Ti suggerisco di fare una ricerca nel forum sulle matrici e gli array multidimensionali: ci sono molte discussioni al riguardo.

Segnalarei anche le pagine specifiche nella nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Matrici_ed_Array
Titolo: Re: Prodotto tra matrici
Inserito da: pastrank - 06 Aprile 2013, 19:55:31
Codice: [Seleziona]
amatrix = Array(qui ho scritto, separati da una virgola, gli elementi che intendevo piazzare nella matrice A) 
END

Provato a usare la parentesi quadra anziche' la tonda?
Titolo: Re: Prodotto tra matrici
Inserito da: Picavbg - 06 Aprile 2013, 22:28:54
Vi ringrazio delle risposte. So che vi sembrerà assurdo, ma il mio problema è a monte: come si definisce una matrice??
avevo provato così:

Codice: [Seleziona]
Amatrix As Integer[1,11]
Bmatrix As Integer[11,15]

Public Sub Form_Open()
amatrix = Array(qui ho scritto, separati da una virgola, gli elementi che intendevo piazzare nella matrice A)
END

Evidentemente non è corretto, ma non ho capito come si deve definire!

Come ti ha indicato vuott, il Forum contiene diverse discussioni sull'argomento, comunque riporto una matrice dichiarata nel mio ContabFam:
Codice: [Seleziona]
Dim $TbMesi As String[] = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]
Come avrai constatato è una matrice monodimensionale. Se dovessi invece dichiarare matrici multidimensionali, il procedimento è un altro.
Spero di avere intuito quello che cerchi.
 :ciao:
Titolo: Re: Prodotto tra matrici
Inserito da: Berserker79 - 07 Aprile 2013, 12:23:22
Prova in questo modo:
Codice: [Seleziona]
  Dim Y As Integer[] = [10, 20] 'matrice monodimesione contenente due valori 10 e 20
  Dim X As New Integer[2, 2] 'matrice pluridimensione
  Dim i, ii As Integer 'variabili integer a cui passare i valori delle matrici nel ciclo for
 
  'setto i valori della matrice pluridimensione
  X[0, 0] = 1
  X[0, 1] = 2
  X[1, 0] = 3
  X[1, 1] = 4
 
  'inizio il ciclo for per effettuare il prodotto fra le matrici
  For Each i In Y
    For Each ii In X
      Print i * ii
    Next
  Next
Titolo: Re: Prodotto tra matrici
Inserito da: paociao - 11 Aprile 2013, 16:05:49
Con un pò di ritardo, ma ringrazio tutti voi per aver risposto alla mia domanda! In particolare Berserker79 che mi ha dato un grosso input!! :ok: :ok: Non vi aggiungo il codice che ho scritto perchè per il momento ho solo provato il codice scritto da Berserker79 che però non esegue il prodotto tra matrici (il famoso "righe per colonne") così come serve a noi matematici!! Comunque non appena trovo una soluzione la inserisco sicuramente, magari può tornare utile anche ad altri utenti! ;)
 :ciao:
Titolo: Re: Prodotto tra matrici
Inserito da: vuott - 11 Aprile 2013, 17:22:36
Comunque non appena trovo una soluzione la inserisco sicuramente, magari può tornare utile anche ad altri utenti!
Suggerisco ancora di inserire novità ed utili algoritmi anche nella nostra WIKI.