GSL::Matrix.new(n)
GSL::Matrix.new(array)
GSL::Matrix.new(arrays)
These methods create a GSL::Matrix
object.
One can initialize a matrix with arrays,
require 'gsl' m = GSL::Matrix::new([1, 2, 3], [6, 5, 4], [7, 8, 1]) -> a 3x3 matrix is created, 1 2 3 4 5 6 7 8 9
With an array and rows&cols,
m = GSL::Matrix::new([1, 2, 3, 4, 5, 6, 7, 8, 9], 3, 3)
GSL::Matrix#set(argv)
with two integers and a number,
m.set(1, 2, 3.2) -> the (1, 2) element is set to 3.2
with arrays,
m.set([6, 5, 6], [4, 5, 7], [8, 5, 21]) -> 6 5 6 4 5 7 8 5 21
with an array and sizes,
m.set([4, 5, 6, 8, 98, 6, 4, 3, 1], 3, 3) -> 4 5 6 8 98 6 4 3 1
GSL::Matrix#get(i, j)
GSL::Matrix#set_all(x)
GSL::Matrix#set_zero
GSL::Matrix#set_identity
GSL::Matrix#fwrite(io)
GSL::Matrix#fwrite(filename)
GSL::Matrix#fread(io)
GSL::Matrix#fread(filename)
GSL::Matrix#fprintf(io, format)
GSL::Matrix#fprintf(filename, format)
GSL::Matrix#fscanf(io)
GSL::Matrix#fscanf(filename)
GSL::Matrix#row(i)
GSL::Matrix#column(i)
GSL::Matrix#col(i)
GSL::Matrix#diagonal
GSL::Matrix#set_row(i, v)
GSL::Matrix#set_col(j, v)
GSL::Matrix#swap_rows!(i, j)
GSL::Matrix#swap_rows(i, j)
GSL::Matrix#swap_columns!(i, j)
GSL::Matrix#swap_columns(i, j)
GSL::Matrix#swap_rowcol!(i, j)
GSL::Matrix#swap_rowcol(i, j)
GSL::Matrix#transpose!
GSL::Matrix#transpose
GSL::Matrix#add(b)
GSL::Matrix#add!(b)
GSL::Matrix#sub!(b)
GSL::Matrix#sub(b)
GSL::Matrix#mul_elements!(b)
GSL::Matrix#mul_elements(b)
GSL::Matrix#div_elements!(b)
GSL::Matrix#div_elements(b)
GSL::Matrix#scale!(x)
GSL::Matrix#scale(x)
GSL::Matrix#add_constant!(a)
GSL::Matrix#add_constant(a)
GSL::Matrix#max
GSL::Matrix#min
GSL::Matrix#minmax
GSL::Matrix#max_index
GSL::Matrix#min_index
GSL::Matrix#minmax_index
GSL::Matrix#to_na
This method converts a GSL::Matrix object into an NArray object, which is provided by the NArray extension developed by M.Tanaka. An NArray object is also converted into a GSL::Matrix object with the method to_gm or to_gslm.
ex) require 'narray' require 'gsl' # an NArray object m = NMatrix[[0, 1.2, 1],[1.5, 0, 2]] p m <----- NMatrix.float(3,2): [ [ 0.0, 1.2, 1.0 ], [ 1.5, 0.0, 2.0 ] ] # GSL::Matrix gm = GSL::Matrix.to_gm(m) p gm <---- [ 0.000e+00 1.200e+00 1.000e+00 1.500e+00 0.000e+00 2.000e+00 ] #<GSL::Matrix> # NArray m2 = gm.to_na p m2 <---- NArray.float(3,2): [ [ 0.0, 1.2, 1.0 ], [ 1.5, 0.0, 2.0 ] ]
Note that you should compile Ruby/GSL with the option flag with-narray-include=... to use these methods.