关于vb的转置矩阵问题,用vb编写代码,最后求原矩阵与转置后的矩阵的乘积 30
4个回答
展开全部
宜用二维数组
Private Sub Command1_Click()
Dim A()
Dim B()
Dim J
Dim I
Dim T
Dim K
ReDim A(1 To 3, 1 To 8)
For J = LBound(A, 1) To UBound(A, 1)
T = ""
K = 1
For I = LBound(A, 2) To UBound(A, 2)
A(J, I) = Int(I * Rnd) + 1
T = T & " " & A(J, I)
K = K * A(J, I)
Next
List1.AddItem T & " " & K
Next
List1.AddItem " "
List1.AddItem " "
List1.AddItem " "
For J = LBound(A, 2) To UBound(A, 2)
T = ""
K = 1
For I = UBound(A, 1) To LBound(A, 1) Step -1
T = T & " " & A(I, J)
K = K * A(I, J)
Next
List1.AddItem T & " " & K
Next
End Sub
我也刚学VB对于数组刚会使用,问题算解决了,但是希望你能弄懂其中的原理。
这个问题我们可以用一个数组解决
我计算的是每一行的乘积
并在开始时用随机数赋值
你可以稍加修改
我比较习惯动态数组。
这个问题的关键就是数组不用改变,改变的是输出位置。
A(j,i) 在循环中是现计算i的 所以 它的坐标 是 j=y i=x
就是每一个j循环是一行
矩阵转换 就是 将元数组的x和y对换 且置换后y是由小到大输出
Private Sub Command1_Click()
Dim A()
Dim B()
Dim J
Dim I
Dim T
Dim K
ReDim A(1 To 3, 1 To 8)
For J = LBound(A, 1) To UBound(A, 1)
T = ""
K = 1
For I = LBound(A, 2) To UBound(A, 2)
A(J, I) = Int(I * Rnd) + 1
T = T & " " & A(J, I)
K = K * A(J, I)
Next
List1.AddItem T & " " & K
Next
List1.AddItem " "
List1.AddItem " "
List1.AddItem " "
For J = LBound(A, 2) To UBound(A, 2)
T = ""
K = 1
For I = UBound(A, 1) To LBound(A, 1) Step -1
T = T & " " & A(I, J)
K = K * A(I, J)
Next
List1.AddItem T & " " & K
Next
End Sub
我也刚学VB对于数组刚会使用,问题算解决了,但是希望你能弄懂其中的原理。
这个问题我们可以用一个数组解决
我计算的是每一行的乘积
并在开始时用随机数赋值
你可以稍加修改
我比较习惯动态数组。
这个问题的关键就是数组不用改变,改变的是输出位置。
A(j,i) 在循环中是现计算i的 所以 它的坐标 是 j=y i=x
就是每一个j循环是一行
矩阵转换 就是 将元数组的x和y对换 且置换后y是由小到大输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim a(3, 2) As Integer, aa(2, 3) As Integer
Private Sub Form_Load()
Dim i As Integer, j As Integer
Print "转置前;"
For i = 1 To 3
For j = 1 To 2
a(i, j) = Int(Rnd * 51 + 50)
Print a(i, j);
Next j
Print
Next i
Print "转置后:"
For i = 1 To 2
For j = 1 To 3
aa(i, j) = a(j, i)
Print aa(i, j);
Next j
Print
Next i
End Sub
矩阵只有当左边矩阵的列数等于右边矩阵的行数时,它们才可以相乘,乘积矩阵的行数等于左边矩阵的行数,乘积矩阵的列数等于右边矩阵的列数
矩阵的乘法是左行乘右列
这个可以。我以前做的练习。
Private Sub Form_Load()
Dim i As Integer, j As Integer
Print "转置前;"
For i = 1 To 3
For j = 1 To 2
a(i, j) = Int(Rnd * 51 + 50)
Print a(i, j);
Next j
Next i
Print "转置后:"
For i = 1 To 2
For j = 1 To 3
aa(i, j) = a(j, i)
Print aa(i, j);
Next j
Next i
End Sub
矩阵只有当左边矩阵的列数等于右边矩阵的行数时,它们才可以相乘,乘积矩阵的行数等于左边矩阵的行数,乘积矩阵的列数等于右边矩阵的列数
矩阵的乘法是左行乘右列
这个可以。我以前做的练习。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-11
展开全部
第一个人写的有点问题,转置后对角元素是相同的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询