Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java หา Transpose ของเมทริกซ์


ในบทความนี้ เราจะเรียนรู้วิธีการหา Transpose ของเมทริกซ์ เมทริกซ์มีการจัดเรียงองค์ประกอบเป็นแถวและคอลัมน์ เมทริกซ์ที่มี m แถวและ n คอลัมน์ เรียกว่าเมทริกซ์ m × n Transpose ของเมทริกซ์ หาได้จากการสลับแถวเป็นคอลัมน์ หรือคอลัมน์เป็นแถว

ตัวอย่างการทำงาน

สมมติข้อมูลนำเข้า (Input) คือ:

The matrix is defined as: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

ผลลัพธ์ที่ต้องการ (Output) คือ:

The transpose of the matrix is: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศเมทริกซ์จำนวนเต็ม 2 ตัว คือ input_matrix และ result_matrix
ขั้นตอนที่ 3 - กำหนดค่าให้กับเมทริกซ์
ขั้นตอนที่ 4 - วนลูปผ่านแต่ละองค์ประกอบด้วย for-loop 2 ชั้น นำองค์ประกอบที่ตำแหน่ง [i][j] ไปไว้ที่ [j][i] ของ result_matrix
ขั้นตอนที่ 5 - แสดง result_matrix
ขั้นตอนที่ 6 - จบการทำงาน

ตัวอย่างที่ 1: เขียนโค้ดทั้งหมดในฟังก์ชัน main

public class MatrixTranspose { 
    static final int matrix_size = 4; 
    public static void main (String[] args) { 
        int input_matrix[][] = { 
            {1, 1, 1, 1}, 
            {2, 2, 2, 2}, 
            {3, 3, 3, 3}, 
            {4, 4, 4, 4} 
        }; 
        System.out.println("The matrix is defined as: \n"); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(input_matrix[i][j] + " "); 
            } 
            System.out.println(); 
        } 
        int result_matrix[][] = new int[matrix_size][matrix_size]; 
        for (int i = 0; i < matrix_size; i++) 
            for (int j = 0; j < matrix_size; j++) 
                result_matrix[i][j] = input_matrix[j][i]; 
        System.out.println("\nThe transpose of the matrix is: "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(result_matrix[i][j] + " "); 
            } 
            System.out.println(); 
        } 
    } 
}

ผลลัพธ์

The matrix is defined as: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
The transpose of the matrix is: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

ตัวอย่างที่ 2: ใช้ฟังก์ชันแยก (Object-Oriented Style)

public class MatrixTranspose { 
    static final int matrix_size = 4; 
    static void transpose(int input_matrix[][]) { 
        int result_matrix[][] = new int[matrix_size][matrix_size]; 
        for (int i = 0; i < matrix_size; i++) 
            for (int j = 0; j < matrix_size; j++) 
                result_matrix[i][j] = input_matrix[j][i]; 
        System.out.println("\nThe transpose of the matrix is: "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(result_matrix[i][j] + " "); 
            } 
            System.out.println(); 
        } 
    } 
    public static void main (String[] args) { 
        int input_matrix[][] = { 
            {1, 1, 1, 1}, 
            {2, 2, 2, 2}, 
            {3, 3, 3, 3}, 
            {4, 4, 4, 4} 
        }; 
        System.out.println("The matrix is defined as: \n"); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(input_matrix[i][j] + " "); 
            } 
            System.out.println(); 
        } 
        transpose(input_matrix); 
    } 
}

ผลลัพธ์

The matrix is defined as: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
The transpose of the matrix is: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4