a = [1,2,3,4]
b = [2,3,4,5]
c = b - a
put c
我得到這個答案 - >[1]
我想這個答案 - >[1,1,1,1]
(如矩陣加法/減法)
我嘗試這樣做:
c.each {|e| c[e] = b[e] - a[e]}
,但我得到這樣的回答:[1,0,0,0]
有人可以給我一個正確的方法來做到這一點嗎?非常感謝!
a = [1,2,3,4]
b = [2,3,4,5]
c = b - a
put c
我得到這個答案 - >[1]
我想這個答案 - >[1,1,1,1]
(如矩陣加法/減法)
我嘗試這樣做:
c.each {|e| c[e] = b[e] - a[e]}
,但我得到這樣的回答:[1,0,0,0]
有人可以給我一個正確的方法來做到這一點嗎?非常感謝!
您可以使用each_with_index
和map
。
c = b.each_with_index.map { |n,i| n - a[i] }
# => [1, 1, 1, 1]
這也適用於Ruby 1.8。 – 2011-04-10 04:11:11
謝謝,我一直忘記1.9中加入了什麼。 – Andy 2011-04-10 04:13:47
非常感謝。我把所有東西都轉換成矩陣。還有一個問題。我會用什麼來自動構建並填充矩陣?我用array1 = Array.new(hi){| e | e = 0}構造並用0填充用戶定義的數組。是否有類似的矩陣命令?再次感謝! – subyman 2011-04-10 04:17:21
@subyman'array1 = Array.new(hi,0)'會更簡單。 – sawa 2011-04-10 04:20:58
@subyman'Matrix.build'可能就是你要找的東西。檢查[doc for mor info](http://www.ruby-doc.org/stdlib/libdoc/matrix/rdoc/classes/Matrix.html#M001112)。但有很多方法。 – Andy 2011-04-10 04:23:47