Method: Matrix.build
- Defined in:
- lib/y_support/stdlib_ext/matrix/misc.rb
.build(row_size, column_size = row_size) ⇒ Object
Creates a matrix of size row_size x column_size. It fills the values by calling the given block, passing the current row and column. Returns an enumerator if no block is given.
m = Matrix.build(2, 4) {|row, col| col - row }
=> Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]
m = Matrix.build(3) { rand }
=> a 3x3 matrix with random elements
114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/y_support/stdlib_ext/matrix/misc.rb', line 114 def Matrix.build(row_size, column_size = row_size) row_size = CoercionHelper.coerce_to_int(row_size) column_size = CoercionHelper.coerce_to_int(column_size) raise ArgumentError if row_size < 0 || column_size < 0 return to_enum :build, row_size, column_size unless block_given? rows = Array.new(row_size) do |i| Array.new(column_size) do |j| yield i, j end end new rows, column_size end |