js使用for循环进行矩阵乘法

/**
     * 矩阵乘法 
     * @param matrix_a 矩阵行
     * @param matrix_c 矩阵列
     * @returns 返回矩阵
     */
    public MatrixMultiply(matrix_a: Float64Array, matrix_c: Float64Array): Float64Array {
        const matrix: Float64Array = new Float64Array(matrix_a.length);
        const length_a: number = Math.sqrt(matrix_a.length);
        let matrix_b: Float64Array = new Float64Array(matrix_a.length);;
        if (length_a === matrix_c.length) {
            for (let i: number = 0; i < matrix_a.length; i++) {
                matrix_b[i] = matrix_c[i % length_a];
            }
        } else {
            matrix_b = Float64Array.from(matrix_c, value => value);
        }
        const length_b: number = Math.sqrt(matrix_b.length);
        if (matrix_a.length === matrix_b.length) {
            if ((length_a % 1 === 0 && length_b % 1 === 0) && (matrix_a.length > 3 && length_b > 3)) {
                for (let i: number = 0; i < length_a; i++) {
                    for (let m: number = 0; m < length_a; m++) {
                        for (let n: number = 0; n < length_b; n++) {
                            matrix[i * length_a + m] += matrix_a[n * length_b + m] * matrix_b[i * length_a + n];
                        }
                    }
                }
                return matrix;
            } else {
                console.warn("请确定传入的矩阵长度能正常开方");
                return undefined;
            }
        } else {
            console.warn("请用两个长度相等的矩阵相乘");
            return undefined;
        }
    }

核心代码就这几行

两个if分别是

a矩阵与b矩阵是否相等

a矩阵长度开方与b矩阵长度开方是否是整数  a矩阵长度与b矩阵长度是否大于3