Προς το περιεχόμενο

Πολ/μός μητρών


christian-ago

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα. Προσπαθω να υλοποιησω ενα γνωστο αλγοριθμο με την php κι ενα πολυ βασικο βημα είναι ο πολλαπλασιασμός μητρών-πινάκων.

Δηλαδη μου δινεται 1 2-διάστατος πίνακας και πρεπει να τον πολ/σω με τον εαυτό του.

Ξερει κανεις πώς μπορω να κανω κατι τετοιο;

 

Ας πουμε εχω κατι τετοιο (μονο αριθμητικες τιμες φυσικα).

>
$myArray = array(
 array( 1, 2, 3 ),
 array( 4, 5, 6 ),
 array( 7, 8, 9 )
);

Στα μαθηματικα λεγεται matrix square. Εψαξα αλλα πρεπει να ειναι δυσκολο να βρεις ετοιμη συναρτηση γι αυτο. Ευχαριστω.

Δημοσ.

>$myArray = array(
array( 1, 2, 3 ),
array( 4, 5, 6 ),
array( 7, 8, 9 )
);

$mul = array();

for ($i=0; $i<$x; $i++)
{
for ($j=0; $j<$y; $j++)
{
	$mul[$i][$j] = $myArray[$i][$j] * 2;
}
}

 

Κάτι σαν το παραπάνω θέλεις (μιας και δεν ξέρω από μαθηματικά);

Δημοσ.

Οκ εστω οτι ξερουμε το μεγεθος του πινακα. Η προταση αυτη δεν κανει πολ/μο μητρας οπως στην αλγεβρα.

>$mul[$i][$j] = $myArray[$i][$j] * 2;

Απλα διπλασιαζει καθε στοιχειο του πινακα και αποθηκευει το αποτελεσμα σε ενα νεο πινακα. Ευχαριστω παντως.

θα ηταν μια αρχη ομως εαν υψωναμε καθε στοιχειο στο τετραγωνο.

Δημοσ.

Συγγνώμη δεν ξέρω τι είναι ο πολλαπλασιασμός μήτρας για να βοηθήσω περισσότερο.

 

Όσο για το x2, όντως λάθος μου. ^2 ήθελα να γράψω, ώστε το εκάστοτε στοιχείο να πολλαπλασιάζεται με τον εαυτό του.

Δημοσ.

Ευχαριστω εδω ειναι ολοκληρο για οποιον χρειαστει ποτε. Δεν ειναι κι εντελως δυναμικος ο κωδικας αλλα προσαρμοζεται ευκολα σε συναρτηση.

 

>$myArray = array(
 array( 1, 2, 3 ),
 array( 4, 5, 6 ),
 array( 7, 8, 9 )
);

$mul = array();

for($i=0;$i<3;$i++)
       {
           for($j=0;$j<3;$j++)
           {
               $mul[$i][$j]=0;
               for($k=0;$k<3;$k++)
               {
                   $mul[$i][$j]+=$myArray[$i][$k]*$myArray[$k][$j];
               }
           }
       }
       
print_r($mul);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...