如果我在Ruby中有一个现有的Matrix,我该如何添加一列或一行新数据?
我想做的是这样的事情:
require 'Matrix'
my_matrix = Matrix.diagonal(1,2,3)
my_matrix.append_row!([3,2,1])
my_matrix.append_column!([3,2,1])
有办法做到这一点吗?
答案 0 :(得分:5)
由于这不是(据我所知)数学意义上的有效矩阵运算,因此无法做到这一点。您可以创建一个新的Matrix:
m = Matrix.diagonal(1, 2, 3)
#=> Matrix[[1, 0, 0], [0, 2, 0], [0, 0, 3]]
Matrix.columns(m.to_a << [4, 5, 6])
#=> Matrix[[1, 0, 0, 4], [0, 2, 0, 5], [0, 0, 3, 6]]
Matrix.rows(m.to_a << [4, 5, 6])
#=> Matrix[[1, 0, 0], [0, 2, 0], [0, 0, 3], [4, 5, 6]]
答案 1 :(得分:0)
我怀疑您正在寻找的方法是 [hstack][1]
和 vstack
。