2015-11-09 38 views
1

我正在嘗試使用::對角線方法在Ruby中創建矩陣。 A是我創建的一個數組。我想要做的是用a中的每個數字填充a_new_matrix的對角線,但是我得到的是a_new_matrix [0,0]是A.我怎麼能解決這個問題?無法使用數組中的::對角線創建Ruby矩陣

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

回答

2

我想要做的就是填充對角線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是一個變量。

+0

這正是我想要的,thx! – leoluo

+0

你很歡迎:)另外,歡迎來到堆棧溢出! –