Arrays 如何用swift 4中的另一个[Float]减去[[Float]]?
我想减去两个浮点数组Arrays 如何用swift 4中的另一个[Float]减去[[Float]]?,arrays,swift,Arrays,Swift,我想减去两个浮点数组 let array1 = [[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473],[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473],[0,5.2000003,0.44705883,0,0,0
let array1 = [[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473],[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473],[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473]]
let array2 = [0.23529412, 1.7411765, 0.23529412, 0.0, 0.28235295, 0.0, 0.0, 0.5882353, 0.87058824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.1529412]
我想要的输出是array2,应该从array1的所有元素中减去。有没有办法避免forloop
Output expected : [[-0.23529412, 3.4588237, 0.21176471, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.3764706, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.364706], [-0.23529412, 3.4588237, 0.21176471, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.3764706, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.364706], [-0.23529412, 3.4588237, 0.21176471, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.3764706, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.364706]]
在array1和array2上使用zip:uu1:和map:,即
编辑:
如果阵列1和阵列2的类型为[[Float]]和[Float]
展示你的代码谢谢你这么快的回复。很好,兄弟。如果答案有帮助,一定要接受。快乐的编码..如果我想从[Float]中减去[Float],该怎么办?这怎么可能?@ZubinGala给出了一个预期输出的例子。我想要的预期输出是array2,应该从array1的所有元素中减去。
let array3 = zip(array1, array2).map({ $0.0 - $0.1 })
print(array3) //[-0.23529412, 3.4588238000000002, 0.21176471000000002, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.37647059, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.3647061000000003]
let array1 = [[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473],[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473],[0,5.2000003,0.44705883,0,0,0,1.882353,0,0.49411765,0,0,0,0,0,2.447059,1.5294118,0,0,0,4.5176473]]
let array2 = [0.23529412, 1.7411765, 0.23529412, 0.0, 0.28235295, 0.0, 0.0, 0.5882353, 0.87058824, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.1529412]
let output = array1.map({ return zip($0, array2).map({ $0.0 - $0.1 }) }) //[[-0.23529412, 3.4588238000000002, 0.21176471000000002, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.37647059, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.3647061000000003], [-0.23529412, 3.4588238000000002, 0.21176471000000002, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.37647059, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.3647061000000003], [-0.23529412, 3.4588238000000002, 0.21176471000000002, 0.0, -0.28235295, 0.0, 1.882353, -0.5882353, -0.37647059, 0.0, 0.0, 0.0, 0.0, 0.0, 2.447059, 1.5294118, 0.0, 0.0, 0.0, 1.3647061000000003]]