Method: NMatrix.diagonal
- Defined in:
- lib/nmatrix/shortcuts.rb
.diagonal(entries, opts = {}) ⇒ Object Also known as: diag, diagonals
call-seq:
diagonals(array) -> NMatrix
diagonals(array, dtype: dtype, stype: stype) -> NMatrix
Creates a matrix filled with specified diagonals.
-
Arguments :
-
entries-> Array containing input values for diagonal matrix -
options-> (optional) Hash with options for NMatrix#initialize
-
-
Returns :
-
NMatrix filled with specified diagonal values.
-
Examples:
NMatrix.diagonal([1.0,2,3,4]) # => 1.0 0.0 0.0 0.0
0.0 2.0 0.0 0.0
0.0 0.0 3.0 0.0
0.0 0.0 0.0 4.0
NMatrix.diagonal([1,2,3,4], dtype: :int32) # => 1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
431 432 433 434 435 436 437 438 439 |
# File 'lib/nmatrix/shortcuts.rb', line 431 def diagonal(entries, opts={}) m = NMatrix.zeros(entries.size, {:dtype => guess_dtype(entries[0]), :capacity => entries.size + 1}.merge(opts) ) entries.each_with_index do |n, i| m[i,i] = n end m end |