ruby - Ruby 中的有限矩阵

标签 ruby matrix

为什么 Matrix 类没有方法来编辑它的向量和组件?似乎矩阵中的所有内容都可以读取但不能写入。我错了吗?是否有一些类似于 Matrix 的第三方优雅类允许我删除行并有意地编辑它们?

如果没有这样的类(class),请通知我——我将停止搜索。

最佳答案

Matrix 类的设计者一定是不可变数据结构和函数式编程的爱好者。是的,你是对的。

无论如何,总有一个简单的解决方案可以满足您的需求。使用 Matrix 它可以做的事情,然后,只需使用 .to_a 来获得一个真正的数组。

>> Matrix.identity(2).to_a
=> [[1, 0], [0, 1]]

另见 Numerical Ruby Narray .您还可以对类进行 monkeypatch 以添加更多行为。如果这样做,请修补 Matrix 的子类。 (有一些 Ruby 库项目需要 required 类的更多行为,所以他们直接修改它们,使他们的新文件有点有毒。他们可以很容易地修补子类或单例类。)

哦,还有khelll (:-) 可能希望我说,很可能有一种方法可以让你做你想做的事in a functional style .也就是说,通过创建新对象而不是修改旧对象。

关于ruby - Ruby 中的有限矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486484/

相关文章:

ruby-on-rails - RSpec - stub 实例方法

ruby - 如何在 ruby​​ Sinatra 中使用 strftime 本地化日期名称

ruby - EventMachine:定时器和回调在主线程中运行吗?

ruby-on-rails - 有没有办法使用 HashWithIndifferentAccess 序列化 ActiveRecord 的 JSON 属性?

python - 将非数字元组转换为 numpy 矩阵

python - 通过分布项乘以 Numpy 数组

c - 如何在 ruby​​ 扩展中用 C 语言表达无穷大

从二进制矩阵中删除只有一个元素的行/列

c - 指向二维数组和手动内存管理的指针 - C

r - 过滤逻辑和对称矩阵