Swift程序 计算矩阵元素列之和

Swift程序 计算矩阵元素列之和

矩阵是数字在行和列中的排列。矩阵可以是各种类型,如方形、水平、垂直等。

在这篇文章中,我们将学习如何编写一个Swift程序来计算矩阵元素的列之和。在这里,我们使用以下方法来寻找该列的元素之和 −

  • 使用一个嵌套的for-in循环

  • 使用内建的函数

方法1:使用嵌套的for-in循环

这里我们使用一个嵌套的for-in循环来寻找矩阵元素的列之和。

算法

第1步 - 创建一个函数。

第2步 - 创建一个名为sum的变量来存储总和。sum的初始值=0。

第 3步 - 找到行和列的数量。

第 4步 - 运行嵌套的for-in循环来迭代每一行和每一列。

第 5步 - 在这个嵌套循环中,逐列添加元素,并将结果存入sum变量。

第6步 - 在每一列之后,为下一列的元素之和重置sum=0的值。

第 7步 - 创建一个矩阵并将其传入函数。

第8步 - 打印输出。

例子

以下是Swift程序,计算矩阵元素的列之和。

import Foundation
import Glibc

// Function to find the sum of each column of a matrix
func columnElementsSum(matrix: [[Int]]) {
   var sum = 0
   let noRow = matrix.count
   let noColumn = matrix[0].count

   for C in 0..<noColumn {
      for R in 0..<noRow {
         sum += matrix[R][C]
      }
      print("Sum of Column \(C) = \(sum)")
      sum = 0
   } 
}

// Input 4x5 matrix
let M = [[1, 2, 2, 5, 2], [1, 1, 6, 3, 6], [7, 8, 3, 0, 1], [2, 4, 2, 7, 1]]
print("Matrix is:")
for x in 0..<M.count {
   for y in 0..<M[0].count {
      print(M[x][y], terminator:" ")
   }
   print("\n")
}

// Calling function
columnElementsSum(matrix: M)

输出

Matrix is:
1 2 2 5 2
1 1 6 3 6
7 8 3 0 1
2 4 2 7 1
Sum of Column 0 = 11
Sum of Column 1 = 15
Sum of Column 2 = 13
Sum of Column 3 = 15
Sum of Column 4 = 10

在上面的代码中,我们有一个4×5的矩阵,然后将其传递给名为columnElementsSum()的函数,以找到矩阵中各列元素的总和。在这个函数中,我们使用嵌套的for循环来遍历输入矩阵的每个元素,然后将其加入到相应的列和中。完成嵌套for循环后,该函数将打印各个列的和,即第0列=11,第1列=15,第2列=13,以此类推(根据输入矩阵)。

方法2:使用内置函数

为了找到给定矩阵元素的行数之和,我们使用reduce(::)函数。这个函数通过使用给定的闭包来组合数组或任何序列的元素,从而返回一个结果。

语法

func reduce(_initial: Value, _next: Value)

这里,initial代表作为初始累积值的数值。它在闭包第一次被执行时传递给next。next代表一个闭包,它将一个累加值和数组中的一个元素组合成一个新的累加值,如果进一步用于下一个闭包的调用或返回给调用者。

算法

第1步 - 创建一个函数。

第2步 - 找到列的数量。

第 3 步–创建一个一维数组来存储列的总和。

第4步 --运行一个for循环来迭代每一列。

第 5 步–使用reduction函数找到各列元素的总和。

第 6步 - 现在使用+运算符函数存储数组中每一行的和。

第 7 步 – 返回结果数组。

第8步 - 创建一个矩阵并将其传入函数。

第 9 步 – 打印输出。

例子

以下是Swift程序,用于计算矩阵元素的行数之和。

import Foundation
import Glibc

// Function to find sum of columns of matrix elements.
func ColumnSum(matrix: [[Int]]) -> [Int] {
   let col = matrix[0].count
   var colSum = Array(repeating: 0, count: col)

   for C in 0..<col {
      colSum[C] = matrix.reduce(0) { (res, row) -> Int in
         return res + row[C]
      }
   }
   return colSum
}

// 4x4 matrix
let M = [[1, 2, 3, 1],
   [4, 5, 6, 3],
   [7, 8, 9, 5],
   [3, 3, 4, 5]]

// Displaying matrix
print("Matrix is:", M)
let output = ColumnSum(matrix: M)
print("Sum of the columns are:", output)

输出

Matrix is: [[1, 2, 3, 1], [4, 5, 6, 3], [7, 8, 9, 5], [3, 3, 4, 5]]
Sum of the columns are: [15, 18, 22, 14]

在上面的代码中,我们有一个4×4矩阵。然后创建一个以数组为参数的函数,并返回一个包含各列之和的数组。在这个函数中,创建一个空的一维数组来存储每一行的总和,并找到列元素的数量。然后外层for-in循环遍历每一列,对于每一列,reduce()函数遍历每一行的度量,并将矩阵的当前元素添加到相应的列和中。所以根据给定的矩阵,最终结果是[15, 18, 22, 14]。这里15是第0行元素的总和(1+4+7+3),18是第1行元素的总和(2+5+8+3),以此类推。

结论

这就是我们如何计算矩阵元素的列之和。这里使用for-in循环,我们可以计算任何类型的矩阵之和,如3×3,4×5,7×3等。而使用方法2,我们只能计算方形矩阵(行数等于列数)的总和。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程