矩阵与基数1

时间:2013-09-22 15:32:09

标签: ruby matrix

Class Matrix是基数0.我想使用base 1引用矩阵元素或矩阵中的行,同时仍然保留现有方法的功能。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

可以使用Matrix#eachEnumerator#with_index

require 'matrix'

m = Matrix[ [1,2], [3,4] ].each
m.with_index(1){|e,ind| puts "#{e} at #{ind}" }
# >> 1 at 1
# >> 2 at 2
# >> 3 at 3
# >> 4 at 4

您也可以使用Vector课程和Matrix#row_vectors

执行此操作
require 'matrix'

m = Matrix[ [1,2], [3,4] ]
r_v = m.row_vectors().each
r_v.with_index(1){|e,r| p "#{e.to_a} at row #{r}"}
# >> "[1, 2] at row 1"
# >> "[3, 4] at row 2"

答案 1 :(得分:1)

覆盖Matrix#[]

require "matrix"

class Matrix
  def [](i, j)
    @rows.fetch(i - 1){return nil}[j - 1]
  end
end

Matrix[[25, 93], [-1, 66]][1, 2] # => 93