массивы — я пытаюсь сделать код умножения матриц в php, но вместо умножения матриц происходит просто умножение строк и столбцов

Я хочу сделать матричное умножение с использованием массива в PHP. Я пытаюсь сделать то же самое, но вместо умножения матрицы это просто происходит. Простое умножение в соответствии с выходными данными, пожалуйста, помогите мне разрешить это.

Вот мой код:

<?php
$a1 = Array('0' => Array('0' => 1,'1' => 2),'1' => Array('0' => 4,'1' => 5));

$a2 = Array('0' => Array('0' => 7,'1' => 5),'1' => Array('0' => 3,'1' => 2));

$sumArray = array();

$result = array();
for($i=0; $i<=1; $i++)
{
for($j=0; $j<=1; $j++)
{
$result[$i][$j] = $a1[$i][$j] * $a2[$i][$j];
}
}
echo "<pre/>";
print_r($result);
?>

Выход:

массив изображений

0

Решение

<?php$a = Array('0' => Array('0' => 1,'1' => 2),'1' => Array('0' => 4,'1' => 5));$b = Array('0' => Array('0' => 7,'1' => 5),'1' => Array('0' => 3,'1' => 2));

$sumArray = array();

$c = array();

for($i=0;$i<2;$i++) {
for($j=0;$j<2;$j++)
{
$c[$i][$j]=0;
for($k=0;$k<2;$k++)
{ $c[$i][$j]=$c[$i][$j]+($a[$i][$k]*$b[$k][$j]);
}
}
}echo "<pre/>";
print_r($c);
?>
1

Другие решения

Матричное умножение реализовано следующим образом:

for i = 1..N
for j = 1..N
result[i][j] = 0.
for k = 1..N
result[i][j] += array1[i][k] * array2[j][k] // "row times column"end for
end for
end for

Надеюсь, я правильно понял ваш вопрос. Матричное умножение требует 3 цикла for.

0

По вопросам рекламы [email protected]