gpt4 book ai didi

ruby 2.0 如何通过坐标访问矩阵中的元素?

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:58 24 4
gpt4 key购买 nike

我是 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​​ 文档,但没有找到任何答案,很抱歉问了这么愚蠢的问题......

最佳答案

获取元素:

mm[1,2] #output 0

设置元素:

没有任何方法可以做到这一点。 Matrix 是不可变对象(immutable对象),无法更改(恕我直言,不是那么理想)。您可以通过 each 将矩阵复制到数组,更改元素,然后转换回来,或者使用猴子补丁

class Matrix
def []=(i, j, x)
@rows[i][j] = x
end
end
mm[1,2] = 404

或者如果你不想猴子补丁或者想要有点 hacky(虽然看起来不太好):

mm.send(:[]=, 1, 2, 404)

关于ruby 2.0 如何通过坐标访问矩阵中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com