2
如果我在Ruby中有一個現有的Matrix,如何添加一列或一行新數據?如何在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])
有沒有辦法做到這一點?
如果我在Ruby中有一個現有的Matrix,如何添加一列或一行新數據?如何在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])
有沒有辦法做到這一點?
由於在數學意義上這樣做不是(據我所知)一個有效的矩陣運算,所以沒有什麼可以做到這一點。你可以儘管創建一個新的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]]
小建議:列添加示例工作,因爲矩陣是對角對稱的。我相信你會希望'Matrix.columns(m.transpose.to_a << [4,5,6])'添加一列而不重新排序項目。 – Billiam 2013-09-02 01:40:47