ruby 2.0如何通过坐标访问矩阵中的元素?
发布时间:2020-12-17 03:47:41 所属栏目:百科 来源:网络整理
导读:我是ruby的新手,但这就是问题所在.假设我有一个矩阵,我需要在1,2修改一个元素 mm = Matrix.build(2,4) {0}mm[1][2] = 404 但这会引起错误信息 ArgumentError: wrong number of arguments (1 for 2)from /Users/xxxxxx/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.
我是ruby的新手,但这就是问题所在.假设我有一个矩阵,我需要在1,2修改一个元素
mm = Matrix.build(2,4) {0} mm[1][2] = 404 但这会引起错误信息 ArgumentError: wrong number of arguments (1 for 2) from /Users/xxxxxx/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/matrix.rb:314:in `[]' from (irb):11 from /Users/xxxxxx/.rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>' 我检查了ruby doc,但没有找到任何答案,抱歉问这么愚蠢的问题…… 解决方法
获取元素:
mm[1,2] #output 0 设置元素: 没有方法可以做到这一点. Matrix是不可变对象,无法更改(即恕我直言,不是那么优化).您可以将每个矩阵复制到一个数组,更改元素,然后转换回来,或使用猴子补丁 class Matrix def []=(i,j,x) @rows[i][j] = x end end mm[1,2] = 404 或者,如果你不想修补或想要有点hacky(虽然看起来不太好): mm.send(:[]=,1,2,404) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |