2022-07-05 15:55:47 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace DNW\Skills\Numerics;
|
2016-05-24 14:10:39 +02:00
|
|
|
|
|
|
|
class DiagonalMatrix extends Matrix
|
|
|
|
{
|
|
|
|
public function __construct(array $diagonalValues)
|
|
|
|
{
|
|
|
|
$diagonalCount = count($diagonalValues);
|
|
|
|
$rowCount = $diagonalCount;
|
|
|
|
$colCount = $rowCount;
|
|
|
|
|
|
|
|
parent::__construct($rowCount, $colCount);
|
|
|
|
|
|
|
|
for ($currentRow = 0; $currentRow < $rowCount; $currentRow++) {
|
|
|
|
for ($currentCol = 0; $currentCol < $colCount; $currentCol++) {
|
|
|
|
if ($currentRow == $currentCol) {
|
|
|
|
$this->setValue($currentRow, $currentCol, $diagonalValues[$currentRow]);
|
|
|
|
} else {
|
|
|
|
$this->setValue($currentRow, $currentCol, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-07-05 15:55:47 +02:00
|
|
|
}
|