PHP 程序查找两个矩阵的和


2022年4月6日, Learn eTutorial
6163

矩阵是多维数组。为了更好地理解此 PHP 矩阵加法,我们始终建议您学习以下  PHP 编程 的基本主题:

如何计算两个矩阵的加法?

Find the sum of two matrices

要查找两个二维数组的和,首先我们必须找到数组中的行数和列数,并将相应索引中的数字相加。例如,如果矩阵是

        2  3  8              1  5  1

a = 3 2 1 b = 6 1 5

        3  5  6               4  1  2

那么结果将是

3  8  9

9  3  6

7  6  8

如何使用 PHP 执行矩阵加法?

在此矩阵程序中,所有值都是预定义的且无法更改。如果您需要用户提供输入值,请参阅此 PHP 程序将值插入矩阵

在此程序中,我们使用在代码本身中初始化的静态值。首先,我们必须初始化两个二维数组 a1 a2 ,我们必须使用内置函数 count() 将行数和列数分配给变量 rowcol。然后我们必须创建一个空数组 sum[] 来存储数组 a1[]a2[] 的和。 然后将值 0 分配给变量 i 并执行循环,直到条件 'i < row' 变为假,并在每次迭代中增加变量 i 的值。在循环块中,我们必须执行另一个循环,其中我们必须将值 0 分配给变量 j 并执行循环,直到条件 'j < col' 变为假,并在每次迭代中增加变量 j 的值。在循环块中,我们必须将 'a1[i][j] + a2[i][j]' 的计算结果分配给数组 sum[i][j] ,最后使用 for 循环打印二维数组 sum[][] 的元素

矩阵加法的算法

步骤 1: 初始化两个二维数组 a1[]a2[]

步骤 2: 使用内置函数 count() 将行数和列数分配给变量 **row** 和 **col**

步骤 3: 打印数组 a1[]a2[] 中的元素

步骤 4: 创建一个空数组 sum[] 来存储数组 a1[]a2[] 的和

步骤 5: 将值 0 分配给变量 i,并执行子步骤,直到条件 'i < row' 变为假,并在每次迭代中增加变量 i 的值

           (i) 将值 0 分配给变量 j,并执行子步骤,直到条件 'j < col' 变为假,并在每次迭代中增加变量 j 的值,

           (ii) 将 'a1[i][j] + a2[i][j]' 的计算结果分配给数组 sum[i][j]

步骤 6: 使用 for 循环打印二维数组 sum[][] 的元素

PHP 源代码

                                          <?php
$a1 = array(
    array(4, 6, 7),
    array(3, 9, 9),
    array(5, 4, 8)
);
$a2 = array(
    array(6, 7, 5),
    array(9, 2, 1),
    array(6, 8, 3)
);
$row = count($a1);
$col = count($a1[0]);
echo "First matrix: \n";
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        echo $a1[$i][$j] . " ";
    }
    echo "\n";
}
echo "Second matrix: \n";
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        echo $a2[$i][$j] . " ";
    }
    echo "\n";
} 
$sum = array();
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        $sum[$i][$j] = $a1[$i][$j] + $a2[$i][$j];
    }
}
echo "Addition of two matrices: \n";
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        echo $sum[$i][$j] . " ";
    }
    echo "\n";
}
?>
                                      

输出

First matrix:
4 6 7
3 9 9
5 4 8
Second matrix:
6 7 5
9 2 1
6 8 3
Addition of two matrices:
10 13 12
12 11 10
11 12 11