我正在尝试使用:: diagonal方法在Ruby中创建一个矩阵。 A是我创建的数组。我想要做的是用A中的每个数字填充a_new_matrix的对角线,但我得到的是a_new_matrix [0,0]是A.我怎么能解决这个问题?
A = Array.new
... #populate A
a_new_matrix = Matrix.diagonal(A)
答案 0 :(得分:2)
我想要做的是用A中的每个数字填充a_new_matrix的对角线
来自docs:
Matrix.diagonal(9, 5, -3)
#=> 9 0 0
# 0 5 0
# 0 0 -3
因此,对于数组,您可以使用 splat运算符(*
):
ary = [1, 2, 3]
Matrix.diagonal(*ary)
#=> Matrix[[1, 0, 0], [0, 2, 0], [0, 0, 3]]
A是我创建的数组
小心的大写标识符是常量。 A
是常量,a
是变量。