Method: Stick::Matrix.diagonal

Defined in:
lib/stick/matrix/core.rb

.diagonal(*values) ⇒ Object

Creates a matrix where the diagonal elements are composed of values.

Matrix.diagonal(9, 5, -3)
  =>  9  0  0
      0  5  0
      0  0 -3


164
165
166
167
168
169
170
171
172
173
# File 'lib/stick/matrix/core.rb', line 164

def Matrix.diagonal(*values)
  size = values.size
  rows = (0 .. size  - 1).collect {
    |j|
    row = Array.new(size).fill(0, 0, size)
    row[j] = values[j]
    row
  }
  rows(rows, false)
end