module Properties
Public Instance Methods
Returns array with column on index as values. Also aliased as column()
# File lib/matrix_gem/properties_module.rb, line 72 def col(index) column = [] (0..self.m-1).each{ |x| column << self[x, index] } column end
Returns the number of columns. Also aliased as n(), col_size
(), column_count
()
# File lib/matrix_gem/properties_module.rb, line 44 def col_length self[0].length end
Return array with values on main diagonal.
# File lib/matrix_gem/properties_module.rb, line 19 def diagonal_values size = ([self.m, self.n].min) -1 values = [] (0..size).each do |i| values << self[i][i] end values end
Returns true if there is values not equal to 0 only on main diagonal. Also aliased as diagonal?
# File lib/matrix_gem/properties_module.rb, line 98 def is_diagonal (0..self.m-1).each do |i| (0..self.m-1).each do |j| return false if ((self[i,j] != 0 && i != j)) end end true end
Returns true if this is a matrix with equal rows and columns. Also aliased as square?
# File lib/matrix_gem/properties_module.rb, line 118 def is_square return false if self.m != self.n true end
Returns true if this is square matrix and its transpose is equal to its inverse. Also aliased as is_zero
# File lib/matrix_gem/properties_module.rb, line 126 def orthogonal? return true if ((self.is_square) && (self.transposed == self.inversed)) false end
Retuns array with row on index as values.
# File lib/matrix_gem/properties_module.rb, line 66 def row(index) self[index] end
Set values of matrix column. Elements shoud be an array of values. Raise error if length of elements is not equal to matrix column length.
# File lib/matrix_gem/properties_module.rb, line 90 def set_col(index, elements) raise MatrixArgumentError, 'Different length of elements and column length' if elements.length != self.col_length (0..self.m-1).each{ |x| self[x, index] = elements[x] } self end
Set values on main diagonal. Raise error if nums are less than matrix main diagonal length Also aliased as set_diagonal_values
# File lib/matrix_gem/properties_module.rb, line 32 def set_diagonal(*nums) size = ([self.m, self.n].min) -1 raise MatrixArgumentError, 'Wrong number of arguments.' if nums.length < size + 1 (0..size).each do |i| self[i,i] = nums[i] end self end
Set values of matrix row. Elements shoud be an array of values Raise error if length of elements is not equal to matrix row length.
# File lib/matrix_gem/properties_module.rb, line 81 def set_row(index, elements) raise MatrixArgumentError, 'Different length of elements and row length' if elements.length != self.row_length self[index] = elements self end
Returns an array of arrays that describe the rows of the matrix.
# File lib/matrix_gem/properties_module.rb, line 6 def to_a self end
Make all values floating point.
# File lib/matrix_gem/properties_module.rb, line 11 def to_f (0..self.n - 1).each{ |i| (0..self.m - 1).each do |j| self[i,j] = self[i,j].to_f end } self end