无法使用:: diagonal from array创建Ruby矩阵

时间:2015-11-09 02:56:27

标签: ruby

我正在尝试使用:: diagonal方法在Ruby中创建一个矩阵。 A是我创建的数组。我想要做的是用A中的每个数字填充a_new_matrix的对角线,但我得到的是a_new_matrix [0,0]是A.我怎么能解决这个问题?

A = Array.new
... #populate A
a_new_matrix = Matrix.diagonal(A)

1 个答案:

答案 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是变量。