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 row of a matrix
func rowElementsSum(matrix: [[Int]]) {
   var sum = 0
   let noRow = matrix.count
   let noColumn = matrix[0].count

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

      // Reseting sum
      sum = 0
   }
}

// Input 4x3 matrix
let M = [[1, 2, 2], [1, 1, 6], [7, 8, 3], [2, 4, 2]]
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
rowElementsSum(matrix: M)

输出

Matrix is:
1 2 2
1 1 6
7 8 3
2 4 2
Sum of row 0 = 5
Sum of row 1 = 8
Sum of row 2 = 18
Sum of row 3 = 8

在上面的代码中,我们有一个4x3矩阵,然后将其传递给名为rowElementsSum()的函数以查找矩阵的行元素之和。在这个函数中,我们使用嵌套for循环来迭代输入矩阵的每个元素,然后将其添加到相应的行和中。完成嵌套for循环后,此函数返回行和,即行0 = 5,行1 = 8,行2 = 18,行3 = 8(根据输入矩阵)。

方法2:使用内置函数

为了找到给定矩阵元素的各行之和,我们使用reduce(_:_:)函数。此函数使用给定的闭包组合数组或任何序列的元素以返回结果。

语法

func reduce(_initial: Value, _next: Value)

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

算法

步骤1 - 创建一个矩阵。

步骤2 - 打印矩阵。

步骤3 - 创建一个一维数组来存储各行之和。

步骤4 - 运行for循环来迭代每一行。

步骤5 - 使用reduce()函数查找各行元素之和。

let sum = row.reduce(0, +)

步骤6 - 现在使用append()函数将每一行的总和存储到数组中。

RowsSum.append(sum)

步骤7 - 打印结果数组。

示例

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

import Foundation
import Glibc

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

// Displaying matrix
print("Matrix is:")
for x in 0..<matrix.count {
   for y in 0..<matrix[0].count {
      print(matrix[x][y], terminator:" ")
   }
   print("\n")
}

// Calculating the sum of the rows elements of the matrix
var RowsSum = [Int]()
for row in matrix {
   let sum = row.reduce(0, +)
   RowsSum.append(sum)
}
print("So the sums of the individual rows are:", RowsSum)

输出

Matrix is:
1 2 3 4 6
4 5 6 1 1
7 8 9 5 5
So the sums of the individual rows are: [16, 17, 34]

在上面的代码中,我们有一个5x3矩阵。然后创建一个空的一维数组来存储每一行的和。使用for循环,我们迭代给定矩阵的每一行,并使用reduce()函数添加该行的元素。然后将此总和存储在RowsSum数组中。因此,根据给定的矩阵,最终结果为[16, 17, 34]。其中16是行0元素(1+2+3+4+6)的和,17是行1元素(4+5+6+1+1)的和,依此类推。

结论

这就是我们计算矩阵元素各行之和的方法。使用上述方法,我们可以计算任何类型的矩阵的和,例如6x6、9x9、4x3、6x7等。

更新于:2023年2月16日

242 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告