%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php /** * * Class for the creating "special" Matrices * * @copyright Copyright (c) 2018 Mark Baker (https://github.com/MarkBaker/PHPMatrix) * @license https://opensource.org/licenses/MIT MIT */ namespace Matrix; /** * Matrix Builder class. * * @package Matrix */ class Builder { /** * Create a new matrix of specified dimensions, and filled with a specified value * If the column argument isn't provided, then a square matrix will be created * * @param mixed $fillValue * @param int $rows * @param int|null $columns * @return Matrix * @throws Exception */ public static function createFilledMatrix($fillValue, $rows, $columns = null) { if ($columns === null) { $columns = $rows; } $rows = Matrix::validateRow($rows); $columns = Matrix::validateColumn($columns); return new Matrix( array_fill( 0, $rows, array_fill( 0, $columns, $fillValue ) ) ); } /** * Create a new identity matrix of specified dimensions * This will always be a square matrix, with the number of rows and columns matching the provided dimension * * @param int $dimensions * @return Matrix * @throws Exception */ public static function createIdentityMatrix($dimensions, $fillValue = null) { $grid = static::createFilledMatrix($fillValue, $dimensions)->toArray(); for ($x = 0; $x < $dimensions; ++$x) { $grid[$x][$x] = 1; } return new Matrix($grid); } }