Skip to content

A lightweight and efficient PHP library for matrix and vector operations with a clean object-oriented interface.

Notifications You must be signed in to change notification settings

khaledkadri/matrix-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

matrix-php

A lightweight and efficient PHP library for matrix and vector operations with a clean object-oriented interface.

MatrixPHP provides a clean, object-oriented interface for matrix and vector operations in PHP. With support for basic operations (addition, subtraction, multiplication) and advanced features (determinant, inverse, transpose, cofactor), it offers comprehensive exception handling and full type hints for modern PHP development. Perfect for scientific computing, data analysis, and educational purposes.

Documentation

Creating Matrices

require_once 'src/Exceptions/MatrixException.php';
require_once 'src/Exceptions/DimensionException.php';
require_once 'src/Exceptions/SingularMatrixException.php';
require_once 'src/Exceptions/InvalidArgumentException.php';
require_once 'src/Matrix.php';

use MatrixPHP\Matrix;

// Create a matrix
$A = new Matrix([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]);

// Basic operations
$B = new Matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]);
$C = $A->add($B);           // Matrix addition
$D = $A->multiply(2);       // Scalar multiplication
$E = $A->transpose();       // Transpose

// Advanced operations
$det = $A->determinant();   // Calculate determinant
$inv = $B->inverse();       // Matrix inverse (if non-singular)

// Matrix multiplication
$result = $A->matrixMultiply($B);

echo $A;  // Pretty print matrix

Exception Handling

use MatrixPHP\Exceptions\DimensionException;
use MatrixPHP\Exceptions\SingularMatrixException;
use MatrixPHP\Exceptions\InvalidArgumentException;

try {
    $A = new Matrix([[1, 2], [3, 4]]);
    $B = new Matrix([[1], [2], [3]]);
    $C = $A->add($B);  // Dimension mismatch
} catch (DimensionException $e) {
    echo "Error: " . $e->getMessage();
    // "Matrix dimensions must match for addition"
}

try {
    $singular = new Matrix([[1, 2], [2, 4]]);
    $inv = $singular->inverse();  // Matrix is singular
} catch (SingularMatrixException $e) {
    echo "Error: " . $e->getMessage();
    // "Matrix is singular (determinant = 0)"
}

About

A lightweight and efficient PHP library for matrix and vector operations with a clean object-oriented interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages