是否有内置的方式在Ruby中打印可读矩阵?
例如
require 'matrix'
m1 = Matrix[[1,2], [3,4]]
print m1
Run Code Online (Sandbox Code Playgroud)
并让它显示
=> 1 2
3 4
Run Code Online (Sandbox Code Playgroud)
在REPL而不是:
=> Matrix[[1,2][3,4]]
Run Code Online (Sandbox Code Playgroud)
用于矩阵的Ruby Docs 使它看起来应该显示的内容,但这不是我所看到的.我知道写一个函数来做这件事是微不足道的,但如果有一个'正确'的方式,我宁愿学习!
sep*_*eph 11
您可以将其转换为数组:
m1.to_a.each {|r| puts r.inspect}
=> [1, 2]
[3, 4]
Run Code Online (Sandbox Code Playgroud)
编辑:
这是一个"免费点"版本:
puts m1.to_a.map(&:inspect)
Run Code Online (Sandbox Code Playgroud)
我无法让它看起来像文档,所以我为您编写了一个函数来完成相同的任务。
require 'matrix'
m1 = Matrix[[1,2],[3,4],[5,6]]
class Matrix
def to_readable
i = 0
self.each do |number|
print number.to_s + " "
i+= 1
if i == self.column_size
print "\n"
i = 0
end
end
end
end
m1.to_readable
=> 1 2
3 4
5 6
Run Code Online (Sandbox Code Playgroud)