ric*_*ira -1 ruby multidimensional-array
我想将多维数组的数字元素映射到特定的间隔,我将展示一个示例:
原始阵列:
arr = [[-30,2,-1],[0,3,-20],[1,20,7],[40,60,50]]
Run Code Online (Sandbox Code Playgroud)
我想将数组的值映射arr到0到255之间的间隔
结果数组:
arr_result = [[0, 18, 10], [5, 20, 2], [200, 255, 220]]
Run Code Online (Sandbox Code Playgroud)
我arr[0][0] = -30现在的原始数组的最小值是0,现在我的最大值arr[3][1] = 60是255,然后其他值切换到我的最小值和最大值之间的数字0 and 255
有小费吗?
xss = [[-30, 2, -1], [0, 3, -20], [1, 20, 7], [40, 60, 50]]
min, max = xss.flatten(1).minmax
factor = 255.0 / (max - min)
yss = xss.map { |xs| xs.map { |x| (factor * (x - min)).round } }
#=> => [[0, 91, 82], [85, 94, 28], [88, 142, 105], [198, 255, 227]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |