java - 矩阵数组相乘 - 如何避免冗余

标签 java arrays matrix matrix-multiplication

我目前正在用 Java 开发自己的矩阵计算器。目前看来一切都很好,但我遇到了一个问题。

private void multiplyMatrix() {
    if (getNumberOfColumns() == 2) {
        for (int getRows = 0; getRows < getNumberOfRows(); getRows++) {
            for (int getColumns = 0; getColumns < getNumberOfColumns(); getColumns++) {
                System.out.print(
                        matrixArray[getRows][0] * matrixSecondArray[0][getColumns] +
                        matrixArray[getRows][1] * matrixSecondArray[1][getColumns] + " ");
            }
            System.out.println();
        }
    }
    if (getNumberOfColumns() == 3) {
        for (int getRows = 0; getRows < getNumberOfRows(); getRows++) {
            for (int getColumns = 0; getColumns < getNumberOfColumns(); getColumns++) {
                System.out.print(
                        matrixArray[getRows][0] * matrixSecondArray[0][getColumns] +
                        matrixArray[getRows][1] * matrixSecondArray[1][getColumns] +
                        matrixArray[getRows][2] * matrixSecondArray[2][getColumns] + " ");
            }
            System.out.println();
        }
    }
}

我想要完成的是“动态”添加下一行代码:

matrixArray[getRows][nextNumber] * matrixSecondArray[nextNumber][getColumns] +

根据矩阵的大小(例如,如果矩阵为 4x4,它将添加 3 作为 nextNumber 等)来避免冗余(多个 if 语句 && 同一代码的多行)。

最佳答案

private void multiplyMatrix() {
for (int getRows = 0; getRows < getNumberOfRows(); getRows++) {
    for (int getColumns = 0; getColumns < getNumberOfColumns(); getColumns++) {
        double sum = 0;
        for(int i =0; i < getNumberOfColumns() ; i++) {
            sum+= matrixArray[getRows][i] * matrixSecondArray[i][getColumns]
        }
        System.out.print(sum + " ")
    }
    System.out.println();
}
}

关于java - 矩阵数组相乘 - 如何避免冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51254779/

相关文章:

arrays - 在 Numpy 中并行化类似 matmul 的矩阵计算

php - 来自 MySQL JSON 编码数组的 Google 图表

java - 显示按钮 libgdx

java - Java 1.4.2 的 Http Post?

java - 位图文件夹到可绘制的 int 数组,以便在 RecyclerView 中显示

php - 对象与数组、{ } 与 [ ]、echo 与 print_r

javascript - 如何更新数组中的所有值? -JS/Jquery

MATLAB:在不使用循环的情况下提取矩阵的多个部分

matlab - 将 bsxfun 与具有三维矩阵的单例扩展一起使用

java - RTI DDS Qos 配置文件历史未按预期工作