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);
}
}
现在我该如何介绍上述矩阵中的数字以及如何显示它?如果任何人有任何想法使用带矩阵,请与我分享。谢谢。
答案 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();
}
}
}