作业帮 > 综合 > 作业

求算法,在VB中如何实现矩阵A(3,3)与矩阵B(3,3)相乘?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/15 18:19:32
求算法,在VB中如何实现矩阵A(3,3)与矩阵B(3,3)相乘?
即就是A、B均为四行四列的矩阵.如何求出其乘积C(3,3)?
求算法,在VB中如何实现矩阵A(3,3)与矩阵B(3,3)相乘?
直接复制代码 就可以了 按F5 运行: OK
Private Sub Form_Load()
Show
Dim i As Integer, j As Integer
Dim a(3, 3) As Integer, b(3, 3) As Integer, c(3, 3) As Integer
Randomize
Print "a(3,3)矩阵"
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 10 + 1)
Print a(i, j);
Next j
Print
Next i

Print "b(3,3)矩阵"
For i = 0 To 3
For j = 0 To 3
b(i, j) = Int(Rnd * 10 + 1)
Print b(i, j);
Next j
Print
Next i

Print "c(3,3)矩阵"
For i = 0 To 3
For j = 0 To 3
c(i, j) = a(i, j) * b(i, j)
Print c(i, j);
Next j
Print
Next i
End Sub
再问: 话说,在线性代数中,矩阵相乘好像是按照“左取行右取列”的法则吧!不是简单的每个元素相乘吧~~~
再答: 左取行右取列? 解释下
再问: 就是A*B的话,就是让A的第一行乘以B的第一列(对应相乘再相加)为C的第一个元素 以此类推
再答: OK 了 你自己算算看 对不对 Private Sub Form_Load() Show Dim i As Integer, j As Integer, n As Integer Dim a(3, 3) As Integer, b(3, 3) As Integer, c(3, 3) As Integer Randomize Print "a(3, 3)" For i = 0 To 3 For j = 0 To 3 a(i, j) = Int(Rnd * 9 + 1) Print a(i, j); Next j Print Next i Print "b(3, 3)" For i = 0 To 3 For j = 0 To 3 b(i, j) = Int(Rnd * 9 + 1) Print b(i, j); Next j Print Next i Print "c(3, 3)" For i = 0 To 3 For j = 0 To 3 For n = 0 To 3 c(i, j) = c(i, j) + a(i, n) * b(n, j) Next n Print c(i, j); Next j Print Next i End Sub