簡體   English   中英

如何將二維數組乘以標量

[英]How to multiply 2d array by a scalar

我正在編寫一個程序來進行矩陣計算,我需要一種方法的幫助,該方法將我的數組乘以像 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;
    }   

這就是我試圖在 main 中調用它的方式。

    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 有人能指出我正確的方向嗎? 我覺得我錯過了一些基本的東西,但我無法弄清楚。

您使用錯誤的數組作為乘法源:

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

應該

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

暫無
暫無

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

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