Q7
Question 7
Question - 8 Write java program for the following matrix operations:
**a. Addition of two matrices
b. Multiplication of two matrices
c. Transpose of a matrix -- Take input of elements of matrices from user
Code
/**
 *Solution for Ans. 7
 * @author Jatin Kamboj 8647
 */
import java.util.Scanner;
public class java_2 {
    public static void main(String[] args) {
        System.out.print("\n\tThis program will take"
                + "two arrays as inputs and will perform "
                + "Matrix { addition, multiplication,"
                + " transposition }.\n"
                + "Please enter desired input parameters "
                + "that would make all the operations "
                + "possible (addition and multiplication "
                + "- rows and columns values). \n");
        int row_1, col_1, row_2, col_2;
        Scanner s = new Scanner(System.in);
        System.out.print("\nEnter number of rows "
                + "for the first matrix: ");
        row_1 = s.nextInt();
        System.out.print("Enter number of columns "
                + "for the first matrix: ");
        col_1 = s.nextInt();
        System.out.print("\nEnter number of rows "
                + "for the second matrix: ");
        row_2 = s.nextInt();
        System.out.print("Enter number of columns "
                + "for the second matrix: ");
        col_2 = s.nextInt();
        if (row_1 == row_2 && col_1 == col_2) {
            int[][] first_array = new int[row_1][col_1];
            int[][] second_array = new int[row_2][col_2];
            int[][] sum = new int[row_2][col_2];
            int[][] prod = new int[row_2][col_2];
            int[][] trans1 = new int[row_1][col_1];
            int[][] trans2 = new int[row_2][col_2];
            System.out.println("\nEnter all the elements "
                    + "of first matrix row-wise: ");
            for (int i = 0; i < row_1; i++) {
                for (int j = 0; j < col_1; j++) {
                    first_array[i][j] = s.nextInt();
                }
            }
            System.out.println("\nEnter all the elements "
                    + "of second matrix row-wise: ");
            for (int i = 0; i < row_2; i++) {
                for (int j = 0; j < col_2; j++) {
                    second_array[i][j] = s.nextInt();
                }
            }
            System.out.print("\nFirst Matrix: \n");
            printMatrix(row_1, col_1, first_array);
            System.out.println("\nSecond Matrix: ");
            printMatrix(row_2, col_2, second_array);
            System.out.println("\nMatrix after addition: ");
            for (int i = 0; i < row_1; i++) {
                for (int j = 0; j < col_2; j++) {
                    for (int k = 0; k < col_1; k++) {
                        sum[i][j] = first_array[i][j]
                                  + second_array[i][j];
                    }
                }
            }
            printMatrix(row_2, col_2, sum);
            System.out.println("\nMatrix after" +
                    " Multiplication: ");
            // Check if multiplication is Possible
            if (row_2 != col_1) {
                System.out.println("\nMultiplication" +
                        " Not Possible");
            }
            // Multiply the two matrices
            for (int i = 0; i < row_1; i++) {
                for (int j = 0; j < col_2; j++) {
                    for (int k = 0; k < row_2; k++) {
                        prod[i][j] += first_array[i][k] 
                                    * second_array[k][j];
                    }
                }
            }
            printMatrix(row_2, col_2, prod);
            System.out.println("\nFirst Matrix After" +
                    " Transpose: ");
            for (int i = 0; i < row_2; i++) {
                for (int j = 0; j < col_2; j++) {
                    trans1[i][j] = first_array[j][i];
                }
            }
            printMatrix(row_1, col_1, trans1);
            System.out.println("\nSecond Matrix" +
                    " After Transpose: ");
            for (int i = 0; i < row_2; i++) {
                for (int j = 0; j < col_2; j++) {
                    trans2[i][j] = second_array[j][i];
                }
            }
            printMatrix(row_1, col_1, trans2);
        } else {
            System.out.println("\nOperation would not "
                    + "be possible for the given input");
        }
    }
    private static void printMatrix(
            int rows, 
            int cols, 
            int[][] array_of_matrix) {
        StringBuilder str = new StringBuilder("[ ");
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                str.append(array_of_matrix[i][j]).append(" ");
            }
            System.out.println(str + "]");
            str = new StringBuilder("[ ");
        }
    }
}Output




Try or Test The Corresponding Code Here
The above notebook runs on cloud, make sure to run the first cell of the notebook to set-up JDK and JRE on the cloud machine.
Last updated