Swift程序 使用多维数组将两个矩阵相乘
在这篇文章中,我们将学习如何编写一个swift程序,使用多维数组将两个矩阵相乘。
矩阵是一种数学结构,其中的元素以行和列的形式存在。例如,第一个元素在a00位置,第二个元素在a01位置,以此类推。因此,要将两个矩阵相乘,我们将第一个矩阵的第m行乘以第二个矩阵的第n列,然后将乘积相加。这将在结果矩阵的第m行和第n列创建一个元素。例如 –
矩阵1 –
矩阵2 –
所以product=矩阵1 * 矩阵2
算法
第1步 – 定义行和列的大小。
第2步 – 使用多维数组创建两个相同行和列的矩阵。
第3步 – 创建一个行数和列数相同的空矩阵。
第4步 – 运行嵌套for循环,遍历两个矩阵的每个元素。
第5步 – 将矩阵1的[x][z]
位置的元素与矩阵2的每一行的元素相乘,并将这些值相加,将这些值存储在结果矩阵的[x][y]
位置。这个过程将持续到矩阵1的最后一个元素。
第6步 – 打印结果矩阵。
示例
按照Swift程序,使用多维数组将两个矩阵相乘。
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")
}
输出
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
在上面的代码中,我们创建了两个带有数值的4×4矩阵和一个空的4×4矩阵,用多维数组存储结果。现在我们运行嵌套for循环来遍历两个矩阵的每个元素。现在,我们将矩阵1中[x][z]
位置的元素与矩阵2中的每一个元素相乘,使用*
来计算。 操作符,并将数值相加,将结果存储在结果矩阵的[x][y]
位置。对矩阵1的所有元素重复这个过程。
结论
因此,这就是我们如何使用多维数组对矩阵进行乘法。你也可以使用多维数组创建任何大小的矩阵,如4×4、6×3和2×3,并能够对其进行乘法运算。