题目

矩阵卷积运算在图像处理中有着广泛的应用,它的描述如下: 1)对于两个形状相同的矩阵,它们的内积是每个对应位置的数字相乘之后的和; 2)对于小矩阵和大矩阵卷积运算时,以小矩阵为参考,沿着横向和纵向两个方向逐个滑动(取同样大小的矩阵),依次横向和纵向两个方向逐个滑动(取同样大小的矩阵),依次求出内积,得到结果矩阵,如图a所示。 图a 小A同学用VB程序模拟上述的矩阵卷积运算,单击“初始化小矩阵”按钮command1,随机生成小矩阵数据,单击“初始化大矩阵”按钮command2,随机生成大矩阵数据,单击“运算”按钮command3,进行矩阵卷积运算并生成结果矩阵,运行界面如图b所示: 图b (1) 根据描述,上图中“结果矩阵”最后一个被抹去的数字应该是。 (2) 实现上述功能的VB 程序如下。请在划线处填入合适代码。 Const m = 2  ‘小矩阵行数和列数 Const n = 8  ‘大矩阵行数和列数 Dim a(1 To m * m) As Integer Dim b(1 To n * n) As Integer Dim tempStr As String ‘输出行的临时数据 '初始化小矩阵 Private Sub Command1_Click()   Dim x As Integer   ‘小矩阵当前坐标位置   Randomize   List1.Clear   For i = 1 To m       tempStr = ""       For j = 1 To m           x = (i - 1) * m + j                   a(x) = Int(Rnd() * 5 + 1)        ‘小矩阵[1,5]的随机数           tempStr = tempStr + Str(a(x))       Next j       List1.AddItem tempStr   Next i End Sub ‘初始化大矩阵 Private Sub Command2_Click()   Dim x As Integer   ‘大矩阵当前坐标位置   Randomize   List2.Clear   For i = 1 To n     temp Str = ""     For j = 1 To n         x =         b(x) = Int(Rnd() * 10)  ‘大矩阵[0,9]的随机数         tempStr = tempStr + Str(b(x))     Next j     List2.AddItem tempStr   Next i End Sub     ‘运算 Private Sub Command3_Click()   Dim productSum As Integer '内积   Dim product As Integer   Dim rowNow As Integer, colNow As Integer   List3.Clear   For i = 1 To n - m + 1       ‘处理纵向移动      tempStr = ""      For j = 1 To n - m + 1     ‘处理横向移动         productSum = 0         For k = 1 To m * m            rowNow = (k - 1) \ m             ‘小矩阵值的行号            colNow =    ‘小矩阵值的列号            product = a(k) * b((i - 1 + rowNow) * n + j + colNow - 1) '大小矩阵值乘积                      Next k         tempStr = tempStr + Str(productSum)      Next j      List3.AddItem tempStr   Next i End Sub 答案: 【1】52 【1】(i - 1) * n + j 或其它等效答案【2】(k - 1) Mod m + 1 或其它等效答案【3】productSum = productSum + product 或其它等效答案
信息技术 试题推荐
最近更新