java—如何将2d数组乘以标量

plupiseo  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(307)

我正在写一个程序来做矩阵计算,我需要一个方法,将我的数组乘以一个像2.0倍的数字帮助。这就是我目前所拥有的。

public Matrix mul(double k) {
        Matrix scaledA = new Matrix(this.rows, this.columns);
        for (int r = 0; r < this.rows; r++) {
            for (int c = 0; c < this.columns; c++) {
                scaledA.data[r][c] = scaledA.data[r][c] * k;
            }
        } 
    return scaledA;
    }

这就是我想说的。

Matrix g = new Matrix(new double[][]{{1, 4},{-2, 3},{0, -1}});
    double k = 2.0;
    Matrix h = g.mul(k);
    System.out.println("h:\n" + h);

我可以编译它,但当它打印出整个数组时,应该缩放为0.0,有人能给我指出正确的方向吗。我觉得我错过了一些基本的东西,但我想不出来。

m528fe3b

m528fe3b1#

您使用错误的数组作为乘法源:

scaledA.data[r][c] = scaledA.data[r][c] * k;

应该是

scaledA.data[r][c] = this.data[r][c] * k;

相关问题