二維數組練習--矩陣的加法和乘法


數組的練習示例展示:

package arrayList;
/**
 * 矩陣的集中運算法則:求和,求積,求逆矩陣,轉置矩陣......
 * @author Drew
 *
 */
public class Arrays {
    /**
     * 兩個二維數組(矩陣)求和。
     * @param a 矩陣(二維數組)
     * @param b 矩陣(二維數組)
     * @return  返回一個矩陣(二維數組)
     */
    public static int[][] add(int [][] a,int [][] b) {
        int [][] c = new int[a.length][b.length];
        for(int i = 0; i<c.length; i++) {
            for(int j = 0; j < c.length; j++) {
                c[i][j] = a[i][j] + b[i][j];
            }
        }
        return c;
    }
    /**
     * 直接打印出每個矩陣的值
     * @param arr
     */
    public static void print(int [][] arr) {
        for(int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr.length; j++) {
                    System.out.print(arr[i][j] + " ");//輸出每一個數組中的值
            }
            System.out.println();//將數組按行輸出。
        }
    }
    
    /**
     * 矩陣的乘法
     * @param a  矩陣(二維數組)
     * @param b  矩陣(二維數組)
     * @return  返回一個矩陣(二維數組)
     */
    public static int[][] multiplication(int [][] a,int [][] b) {//矩陣的乘法運算法則有問題。見Matrix.java的具體案例。
        int[][] c = new int[a.length][b.length];
        for(int i = 0; i<c.length; i++) {
            for(int j = 0; j < c.length; j++) {
                c[i][j] = a[i][j]*b[i][j];
            }
        }
        return c;
    }
    
    /**
     * 主函數方法,用於測試矩陣的運算法則。
     * @param args
     */
    public static void main(String[] args) {
        int [][] a = {{1,2},
                     {3,4}};
        int [][] b = {{10,20},
                      {30,40}};
        System.out.println("--------矩陣a");
        print(a);
        System.out.println("--------矩陣b");
        print(b);
        System.out.println("============數組的基本運算法則:==============");
        System.out.println("--------矩陣加法----------");
        int [][] c = add(a, b);
        print(c);
        System.out.println("--------矩陣乘法----------");
        int [][] d = multiplication(a, b);
        print(d);
        
        /*int [][] c = new int[2][2];//二階矩陣(Matrix)
        for(int i = 0; i<c.length; i++) {
            for(int j = 0; j < c.length; j++) {
                c[i][j] = a[i][j] + b[i][j];
                System.out.print(c[i][j] + " ");
            }
        }*/
        
        
        //多維數組很少見
        /*int [][][][] b = new int [1][2][2][1];
        b[0][0][0][0] = 34;
        b[0][0][1][0] = 45;
        for(int i = 0; i<b.length; i++) {
            for(int j = 0; j < b.length; j++) {
                for(int c = 0; c < b.length; c++) {
                    for(int f = 0; f < b.length; f++) {
                        System.out.println(b[i][j][c][f] + " ");
                    }
                }
            }
        }*/
    }

}

結果展示:

這是一個小小的二維數組實例展示!你可以自己嘗試着去完成矩陣的轉置和求逆矩陣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM