ruby - 如何对二维数组求和

标签 ruby matrix multidimensional-array sketchup

我有一个二维数组 = [[12,34,35,21],[10,14,23,17],...] 无穷大。

我想用 ruby​​ 做这个;

arr1 = [array[0][0]+array[1][0]+array[n+1][0]...,
array[0][1]+array[1][1]+array[n+1][1]...,
array[0][2]+array[1][2]+array[n+1][2]...,
array[0][3]+array[1][3]+array[n+1][3]...] 

结果 (4x4)

arr1 = [[12+10+..],[34+14+..],[35+23..],[21+17+..]]

有什么想法吗?

最佳答案

您可以使用 Array#transpose ,然后对每个单独的数组求和

array = [[12,34,35,21],[10,14,23,17]]

array.transpose.map {|a| a.inject(:+) }
# => [22, 48, 58, 38]

如果您使用的是 Ruby 2.4 或更高版本,您可以使用 Array#sum方法

array.transpose.map(&:sum)
# => [22, 48, 58, 38] 

对于一个或多个数组的输出,

array.transpose.map {|a| [a.sum] }
# => [[22], [48], [58], [38]] 

关于ruby - 如何对二维数组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41463258/

相关文章:

ruby-on-rails - 设计自定义路由和登录页面

arrays - 如何在ruby中迭代数组中的特定项目

c++ - 实现 Matrix 类加法运算符重载奇怪的输出

algorithm - 在大型稀疏矩阵中查找大型非稀疏子矩阵

c++ - C++ 类中二维数组的正确内存分配

ruby - 创建一个临时文件而不在 Ruby 中打开它

ruby-on-rails - 遍历数组,调整虚拟属性并返回具有调整值的数组

python - 如何在python中保存文件内容?

multidimensional-array - 如何从 View 中有效地克隆 Rust ndarray?

c++ - 向对象数组添加值 C++