当前位置:首页 > PHP

php实现矩阵

2026-01-29 18:37:58PHP

php实现矩阵

php实现矩阵

PHP 实现矩阵操作

在 PHP 中,矩阵可以通过多维数组来表示。以下是常见的矩阵操作实现方法:

矩阵初始化

$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

矩阵转置

function matrixTranspose($matrix) {
    $transposed = [];
    foreach ($matrix as $row => $columns) {
        foreach ($columns as $col => $value) {
            $transposed[$col][$row] = $value;
        }
    }
    return $transposed;
}

矩阵相加

function matrixAdd($matrix1, $matrix2) {
    $result = [];
    for ($i = 0; $i < count($matrix1); $i++) {
        for ($j = 0; $j < count($matrix1[0]); $j++) {
            $result[$i][$j] = $matrix1[$i][$j] + $matrix2[$i][$j];
        }
    }
    return $result;
}

矩阵相乘

function matrixMultiply($matrix1, $matrix2) {
    $result = [];
    $rows1 = count($matrix1);
    $cols1 = count($matrix1[0]);
    $cols2 = count($matrix2[0]);

    for ($i = 0; $i < $rows1; $i++) {
        for ($j = 0; $j < $cols2; $j++) {
            $result[$i][$j] = 0;
            for ($k = 0; $k < $cols1; $k++) {
                $result[$i][$j] += $matrix1[$i][$k] * $matrix2[$k][$j];
            }
        }
    }
    return $result;
}

矩阵行列式

function matrixDeterminant($matrix) {
    $size = count($matrix);
    if ($size == 1) {
        return $matrix[0][0];
    }
    if ($size == 2) {
        return $matrix[0][0] * $matrix[1][1] - $matrix[0][1] * $matrix[1][0];
    }

    $det = 0;
    for ($i = 0; $i < $size; $i++) {
        $minor = [];
        for ($j = 1; $j < $size; $j++) {
            $row = [];
            for ($k = 0; $k < $size; $k++) {
                if ($k != $i) {
                    $row[] = $matrix[$j][$k];
                }
            }
            $minor[] = $row;
        }
        $det += $matrix[0][$i] * pow(-1, $i) * matrixDeterminant($minor);
    }
    return $det;
}

矩阵输出

function printMatrix($matrix) {
    foreach ($matrix as $row) {
        echo implode("\t", $row) . PHP_EOL;
    }
}

使用示例

$m1 = [
    [1, 2],
    [3, 4]
];

$m2 = [
    [5, 6],
    [7, 8]
];

$sum = matrixAdd($m1, $m2);
$product = matrixMultiply($m1, $m2);
$transposed = matrixTranspose($m1);

echo "Matrix Addition:\n";
printMatrix($sum);

echo "\nMatrix Multiplication:\n";
printMatrix($product);

echo "\nTransposed Matrix:\n";
printMatrix($transposed);

这些函数提供了基础的矩阵操作功能,可以根据需要进一步扩展。对于更复杂的矩阵运算,可以考虑使用专门的数学库如 PHP-ML 或 MathPHP。

标签: 矩阵php
分享给朋友:

相关文章

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…

php 实现无限分类

php 实现无限分类

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、菜单管理等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 这是最简单的实现方式,每个分类记录存储其父…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…