矩阵1

1 2 3 
4 5 6

矩阵2

7  8
9  10
11 12

矩阵1是2×3,矩阵2是3×2,矩阵1X矩阵2的结果就是2X2的矩阵3
计算过程:
矩阵1的第一行乘以对应的矩阵2的第一列相加得到矩阵3的第一行第一列;
矩阵1的第一行乘以对应的矩阵2的第二列相加得到矩阵3的第一行第二列;
矩阵1的第二行乘以对应的矩阵2的第一列相加得到矩阵3的第二行第一列;
矩阵1的第二行乘以对应的矩阵2的第二列相加得到矩阵3的第二行第二列;

1*7+2*9+3*11  1*8+2*10+3*12
4*7+5*9+6*11  4*8+5*10+6*12

得到的结果是:

58   64
139  154

这是计算代码

    public static class Matrix
    {
        private int numRows;
        private int numColumns;
        private int data[][];

        public Matrix(int d[][]) {

            numRows = d.length;
            if (numRows == 0)
                numColumns = 0;
            else
                numColumns = d[0].length;

            data = new int[numRows][numColumns];

            for (int i = 0; i < numRows; i++)
                for (int j = 0; j < numColumns; j++)
                    data[i][j] = d[i][j];
        }

        public Matrix times(Matrix m) throws IllegalArgumentException {
            Matrix m2 = this;
            if (m.numRows != m2.numColumns)
                throw new IllegalArgumentException("矩阵数据有误");

            int tempM[][] = new int[data.length][m.data[0].length];
            for (int i = 0; i < data.length; i++)
                for (int j = 0; j < m.data[0].length; j++)
                    for (int k = 0; k < data[0].length; k++)
                        tempM[i][j] += m2.data[i][k] * m.data[k][j];

            return new Matrix(tempM);
        }

        public void printMatrix() {
            for (int i = 0; i < data.length; i++) {
                for (int j = 0; j < data[0].length; j++) {
                    System.out.print(data[i][j] + " ");
                }
                System.out.println();
            }
        }


        public static void main(String[] args) {
            int m1[][] = {{1, 2, 3}, {4, 5, 6}};
            int m2[][] = {{7, 8}, {9, 10}, {11, 12}};

            Matrix matrix1 = new Matrix(m1);
            Matrix matrix2 = new Matrix(m2);

            Matrix result = matrix1.times(matrix2);
            result.printMatrix();

        }
    }

结果一致
在这里插入图片描述

更多推荐