求VB解答.编写程序,实现矩阵转置,即将一个nⅹm的矩阵的行和列互换.编写程序,实现矩阵转置,即将一个nⅹm的矩阵的行和列互换.例如:A矩阵及其转置矩阵B分别为:A=[1 2 34 5 6]B= [1 42 35 6 ]现要求完成如下操作:1)\x09矩阵的行数n和列数m由输入对话框输入;2)\x09矩阵中的元素值由输入对话框输入(或由随机数产生);3)\x09转置以前的矩阵和转置后的矩阵都在窗体上输出.
2019-05-30
求VB解答.编写程序,实现矩阵转置,即将一个nⅹm的矩阵的行和列互换.
编写程序,实现矩阵转置,即将一个nⅹm的矩阵的行和列互换.例如:A矩阵及其转置矩阵B分别为:
A=[1 2 3
4 5 6]
B= [1 4
2 3
5 6 ]
现要求完成如下操作:
1)\x09矩阵的行数n和列数m由输入对话框输入;
2)\x09矩阵中的元素值由输入对话框输入(或由随机数产生);
3)\x09转置以前的矩阵和转置后的矩阵都在窗体上输出.
优质解答
*****因为VB数组不能根据变量定义,所以本例开始定义一个足够大的数组空间,另一种是循环定义变量产生数据空间
Dim arrA(1000, 1000), arrB(1000, 1000)
n = Val(InputBox("输入n"))
m = Val(InputBox("输入m"))
If n >= 1000 Or m >= 1000 Then MsgBox "行列不要大过1000"
'***产生矩阵
Print "转换前"
For i = 1 To n
For j = 1 To m
arrA(i, j) = Int(Rnd * 10)
Print arrA(i, j) & " ";
Next
Print
Next
'‘**交换
For i = 1 To n
For j = 1 To m
arrB(j, i) = arrA(i, j)
Next
Next
Print "转换后"
'****输出
For i = 1 To m
For j = 1 To n
Print arrB(i, j) & " ";
Next
Print
Next
*****因为VB数组不能根据变量定义,所以本例开始定义一个足够大的数组空间,另一种是循环定义变量产生数据空间
Dim arrA(1000, 1000), arrB(1000, 1000)
n = Val(InputBox("输入n"))
m = Val(InputBox("输入m"))
If n >= 1000 Or m >= 1000 Then MsgBox "行列不要大过1000"
'***产生矩阵
Print "转换前"
For i = 1 To n
For j = 1 To m
arrA(i, j) = Int(Rnd * 10)
Print arrA(i, j) & " ";
Next
Print
Next
'‘**交换
For i = 1 To n
For j = 1 To m
arrB(j, i) = arrA(i, j)
Next
Next
Print "转换后"
'****输出
For i = 1 To m
For j = 1 To n
Print arrB(i, j) & " ";
Next
Print
Next