Ruby stdlib Matrix は変更できない、つまり、たとえば.
m = Matrix.zero( 3, 4 )
書くことはできません
m[0, 1] = 7
でもすごくやりたい…
def modify_value_in_a_matrix( matrix, row, col, newval )
ary = (0...m.row_size).map{ |i| m.row i }.map( &:to_a )
ary[row][col] = newval
Matrix[ *ary ]
end
...または次のような不正行為を伴う
Matrix.send :[]=, 0, 1, 7
、しかし、これは人々が常に遭遇する問題でなければならないのだろうか. #send メソッドを使用してクラスを強姦することなく、これを行う標準的で慣習的な方法はありますか?