Java Band Matrix的实现和语法上的丢失

时间:2018-05-31 09:37:13

标签: java matrix

      C1    c2   c3    c4   

 R1   2     -1   0      0
 R2  -1      2  -1      0
 R3   0     -1   2     -1
 R4   0      0  -1      1

我想创建一个这样的乐队矩阵。为此我在互联网上搜索并导入Java Matrix ToolKit。哪里有创建品牌矩阵的选项。带矩阵的语法类似于公共BandMatrix(int n,int kl,int ku)

BandMatrix的构造函数

参数:

n - 矩阵的大小。由于矩阵必须是正方形,因此这等于行数和列数 kl - 主对角线上方的带数(超对角线) ku - 主对角线下方的波段数(子对角线)

现在由于没有关于波段矩阵的示例或文档,我无法创建或显示矩阵。但我仍然想写下一个代码块然后丢失。

import no.uib.cipr.matrix.BandMatrix;
public class T1 {
public static void main(String args[]){
            BandMatrix B=new BandMatrix(4,1,1);

}

}

现在我该如何介绍上述矩阵中的数字以及如何显示它?如果任何人有任何想法使用带矩阵,请与我分享。谢谢。

1 个答案:

答案 0 :(得分:0)

import no.uib.cipr.matrix.BandMatrix;

public class BandMatrixTest {
    public static void main(String[] args) {
        BandMatrix bandMatrix = new BandMatrix(5, 1, 1);
        initMatrix(bandMatrix, 5);
        printMatrix(bandMatrix, 5);
    }

    public static void initMatrix(BandMatrix matrix, int size) {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                try {
                    // generate and add a number between 10 and 20
                    matrix.add(i, j, 10 + (int) (Math.random() * ((20 - 10) + 1)));
                } catch (Exception ignored) {
                }
            }
        }
    }

    public static void printMatrix(BandMatrix matrix, int size) {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                System.out.printf("%4.0f", matrix.get(i, j));
            }
            System.out.println();
        }
    }
}