簡體   English   中英

在Java中乘以2D數組(矩陣)

[英]Multiplying 2d arrays(matrices) in java

我的目標是在兩個數組相乘時打印出矩陣。 我在用這段代碼做錯什么? 我如何獲得它以便打印出矩陣? (對不起,我不知道我應該提供哪些其他詳細信息,除非添加更多詳細信息,否則我無法提交此帖子)。

public class Matrices {
static int mRows = 0;
static int mCol = 0;
static int nRows = 0;
static int nCol = 0;
 public static int[][] multiplyMatrices(int[][] m, int[][] n){
    mRows = m.length;
    mCol = m[0].length;
    nRows = n.length;
    nCol = n[0].length;
    if(canBeMultiplied(m,n) == false){
        throw new IllegalArgumentException("Cannot multiply arrays");
    }
    int[][] answer = new int[mRows][nCol];
    for(int i = 0; i < mRows; i++){
        for(int j = 0; j < nCol; j++){
            for(int k = 0; k < mCol; k++){
                answer[i][j] += m[i][k] * n[k][j];
            }
        }
    }
    return answer;
}

public static boolean canBeMultiplied(int[][] m, int[][]n){
    mRows = m.length;
    mCol = m[0].length;
    nRows = n.length;
    nCol = n[0].length;
    if(nRows == mCol){
        return true;
    }
    return false;
}

public static void main(String[] args) {
    int[][] temp1 = {{1,2,3},{4,5,6}};
    int[][] temp2 ={{1},{2},{3}};
    for(int i = 0; i < mRows; i++){
        for(int j = 0; j < nCol; j++){
            System.out.print(multiplyMatrices(temp1,temp2)[i][j]);
        }
                    System.out.print("\n");
    }

}
}

謝謝你的幫助。

這可能會遍歷2D數組並打印每個元素。

static final int ROWS = 2;
static final int COLS = 4;

int[][] a2 = new int[ROWS][COLS];

//... Print array in rectangular form
for (int i = 0; i < ROWS; i++) {
    for (int j = 0; j < COLS; j++) {
        System.out.print(" " + a2[i][j]);
    }

    System.out.println("");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM