How to inverse N x M matrix in VB.NET

1 Answer

0 votes
Imports System

Module Program
    Sub PrintMatrix(matrix As Integer(,))
        Dim rows As Integer = matrix.GetLength(0)   ' number of rows
        Dim cols As Integer = matrix.GetLength(1)   ' number of columns

        For i As Integer = 0 To rows - 1
            Dim row As String = ""
            For j As Integer = 0 To cols - 1
                ' Pad each number to width 4
                row &= matrix(i, j).ToString().PadLeft(4)
            Next
            Console.WriteLine(row)
        Next
    End Sub

    Sub InverseMatrix(matrix As Integer(,))
        Dim rows As Integer = matrix.GetLength(0)
        Dim cols As Integer = matrix.GetLength(1)
        Dim counter As Integer = 0

        Dim r As Integer = rows - 1
        For i As Integer = 0 To rows - 1
            Dim c As Integer = cols - 1
            For j As Integer = 0 To cols - 1
                ' swap values
                Dim temp As Integer = matrix(i, j)
                matrix(i, j) = matrix(r, c)
                matrix(r, c) = temp

                counter += 1
                If counter > (rows * cols) \ 2 - 1 Then
                    Return
                End If
                c -= 1
            Next
            r -= 1
        Next
    End Sub

    Sub Main()
        Dim matrix As Integer(,) = {
            {1, 2, 3, 4},
            {5, 6, 7, 8},
            {9, 10, 11, 12}
        }

        Console.WriteLine("matrix:")
        PrintMatrix(matrix)

        InverseMatrix(matrix)

		Console.WriteLine(Environment.NewLine & "inverse matrix:")
        PrintMatrix(matrix)
    End Sub
End Module



' run:
'
' matrix:
'    1   2   3   4
'    5   6   7   8
'    9  10  11  12
' 
' inverse matrix:
'   12  11  10   9
'    8   7   6   5
'    4   3   2   1
'


 



answered May 16, 2024 by avibootz
edited Nov 23, 2025 by avibootz

Related questions

...