编写程序,实现矩阵转置,即将一个n×m的矩阵的行和列互换。例如,a矩阵为
    1   2   3
a= 4   5   6
转换和的矩阵为:
a= 1   4
    2   5
    3   6 这个题应该怎么编?

解决方案 »

  1.   

    dim a() as long 
    dim b() as long dim m as long ,n as long dim i as long ,j as long m=?
    n=?redim a(n,m)
    redim b(m,n)'给a(n,m)赋初值for i=0 to m
       for j=0 to n
           b(i,j)=a(j,i)
       next j
    next i
      

  2.   

    Dim a(2, 3) As Long
    Dim b(3, 2) As Long
    Dim strs As String
    Dim k As Integer
    Dim strs1 As String
    For i = 0 To 1
        For j = 0 To 2
         a(i, j) = k
         k = k + 1
        strs = strs & a(i, j) & " "
    Next
    strs = strs & vbCrLf
    Next
    Print strsFor i = 0 To 2
        For j = 0 To 1
            b(i, j) = a(j, i)
            strs1 = strs1 & b(i, j) & " "
        Next
        strs1 = strs1 & vbCrLf
    Next
    Print
    Print strs1
      

  3.   

    上面说的方法都对
    补充一点
    做矩阵转置的时候,可以先生成转置后的行元素,也可以先生成列元素。
    先行:
    Dim a() as long
    Dim b() as long
    Dim m,n as longRedim a(m,n)
    Redim b(n,m)
    '初始化m,n
    '初始化数组a()
    '转置
    For i=0 to m
      For j=0 to n
        b(j,i)=a(i,j)
      Next j
    Next i
    先列:
    Dim a() as long
    Dim b() as long
    Dim m,n as longRedim a(m,n)
    Redim b(n,m)
    '初始化m,n
    '初始化数组a()
    '转置
    For i=0 to m
      For j=0 to n
        b(i,j)=a(j,i)
      Next j
    Next i
      

  4.   

    Private Sub Form_Paint()
    Dim a() As Long
    Dim b() As Long
    Dim m, n As Long
    Dim str As String
    m = 3
    n = 4
    str = ""
    ReDim a(m, n)
    ReDim b(n, m)
    '初始化m,n
    '初始化数组a()
    '转置
    For k = 1 To m
      For k1 = 1 To n
        a(k, k1) = k & k1
      Next
    Next
    Print "数组A"
    Print m & "行" & n & "列"
    For k = 1 To m
      For k1 = 1 To n
        str = str + CStr(a(k, k1)) & "  "
      Next
      Print str
      str = ""
    Next
    Print "================================"
    Print "数组B"
    Print n & "行" & m & "列"
    For i = 1 To m
      For j = 1 To n
        b(j, i) = a(i, j)
      Next j
    Next i
    str = ""
    For k = 1 To n
      For k1 = 1 To m
        str = str + CStr(b(k, k1)) & "  "
      Next
      Print str
      str = ""
    Next