Untitled

 avatar
unknown
plain_text
a year ago
2.3 kB
4
Indexable
def matrix_multiply(A, B):
    # Get the number of rows and columns for matrices A and B
    rows_A, cols_A = len(A), len(A[0])
    rows_B, cols_B = len(B), len(B[0])

    # Check if the matrices can be multiplied
    if cols_A != rows_B:
        raise ValueError("Number of columns in matrix A must be equal to the number of rows in matrix B.")

    # Initialize the result matrix with zeros
    result = [[0 for _ in range(cols_B)] for _ in range(rows_A)]

    # Perform matrix multiplication
    for i in range(rows_A):
        for j in range(cols_B):
            for k in range(cols_A):
                result[i][j] += A[i][k] * B[k][j]

    return result

def get_matrix_from_user(rows, cols):
    matrix = []
    print(f"Enter the elements for a {rows}x{cols} matrix:")
    for i in range(rows):
        row = []
        for j in range(cols):
            try:
                element = float(input(f"Enter element at position ({i + 1}, {j + 1}): "))
                row.append(element)
            except ValueError:
                print("Invalid input. Please enter a valid number.")
                return get_matrix_from_user(rows, cols)
        matrix.append(row)
    return matrix

def print_matrix(matrix):
    for row in matrix:
        print(row)

def main():
    try:
        # Get dimensions for the first matrix
        rows_A = int(input("Enter the number of rows for matrix A: "))
        cols_A = int(input("Enter the number of columns for matrix A: "))

        # Get dimensions for the second matrix
        rows_B = int(input("Enter the number of rows for matrix B: "))
        cols_B = int(input("Enter the number of columns for matrix B: "))

        # Get matrices from the user
        matrix_A = get_matrix_from_user(rows_A, cols_A)
        matrix_B = get_matrix_from_user(rows_B, cols_B)

        # Perform matrix multiplication
        result_matrix = matrix_multiply(matrix_A, matrix_B)

        # Display the result
        print("\nMatrix A:")
        print_matrix(matrix_A)
        print("\nMatrix B:")
        print_matrix(matrix_B)
        print("\nResult of Matrix Multiplication (A * B):")
        print_matrix(result_matrix)

    except ValueError as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment