Processing math: 100%

使用多维数组的Swift程序实现矩阵乘法


在这篇文章中,我们将学习如何编写一个Swift程序,使用多维数组来实现两个矩阵的乘法。

矩阵是一种数学结构,其元素以行和列的形式排列。例如,第一个元素位于a00位置,第二个位于a01位置,以此类推。因此,要乘以两个矩阵,我们将第一个矩阵的第m行乘以第二个矩阵的第n列,并将乘积相加。这将创建一个位于结果矩阵的第m行和第n列的元素。例如:

矩阵1:

[234527932]

矩阵2:

[471114572]

所以积 = 矩阵1 * 矩阵2

[(24+31+44)(27+31+47)(21+34+42)(54+21+74)(57+21+77)(51+24+72)(94+31+24)(97+31+27)(91+34+22)]

[274522508627478025]

算法

步骤1 - 定义行和列的大小。

步骤2 - 使用多维数组创建两个具有相同行和列的矩阵。

步骤3 - 创建一个具有相同行和列数的空矩阵。

步骤4 - 运行嵌套for循环来迭代两个矩阵的每个元素。

步骤5 - 将矩阵1中[x][z]位置的元素与矩阵2的行中的每个元素相乘,并将值相加,将值存储在结果矩阵的[x][y]位置。此过程将持续到矩阵1的最后一个元素。

步骤6 - 打印结果矩阵。

示例

以下是使用多维数组实现两个矩阵乘法的Swift程序。

Open Compiler
import Foundation import Glibc // Size of the matrix var row = 4 var col = 4 // Creating 4x4 matrix of integer type var matrix1 : [[Int]] = [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]] print("Matrix 1:") for x in 0..<row { for y in 0..<col { print(matrix1[x][y], terminator:" ") } print("\n") } var matrix2 : [[Int]] = [[1, 0, 0, 1], [2, 0, 0, 2], [3, 0, 0, 3], [4, 0, 0, 4]] print("Matrix 2:") for x in 0..<row { for y in 0..<col { print(matrix2[x][y], terminator:" ") } print("\n") } // Creating 4x4 matrix to store the result var Mul = Array(repeating: Array(repeating: 0, count: 4), count: 4) // Multiply two matrices // Using * operator for x in 0..<row { for y in 0..<col { for z in 0..<row { Mul[x][y] += matrix1[x][z] * matrix1[z][y] } } } print("Resultant matrix:") for x in 0..<row { for y in 0..<col { print(Mul[x][y], terminator:" ") } print("\n") }

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

Matrix 1:
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

Matrix 2:
1 0 0 1
2 0 0 2
3 0 0 3
4 0 0 4

Resultant matrix:
10 10 10 10
20 20 20 20
30 30 30 30
40 40 40 40

在上面的代码中,我们创建了两个4x4矩阵以及值,并使用多维数组创建了一个空的4x4矩阵来存储结果。现在,我们运行嵌套for循环来迭代两个矩阵的每个元素。现在,我们使用*运算符将矩阵1中[x][z]位置的元素与矩阵2的行中的每个元素相乘,并将值相加,并将结果存储在结果矩阵的[x][y]位置。对矩阵1的所有元素重复此过程。

结论

因此,这就是我们如何使用多维数组进行矩阵乘法。您还可以使用多维数组创建任何大小的矩阵,例如4x4、6x3和2x3,并能够对其进行乘法运算。

更新于:2023年1月9日

646 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告