java - 如何检查矩阵是否是三对角矩阵

标签 java matrix

假设我们有以下矩阵(如下)。我想检查矩阵是否是三对角矩阵(除了主对角线元素、上对角线元素和下对角线元素外,所有元素均为零)。

a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[2][2]
a[2][0] a[2][1] a[2][2]

我不知道如何解决这个问题。我尝试编写一些代码,但没有任何帮助。如果有人可以帮助我解决这个问题,那将会有所帮助。 我正在用 java 编写这个。

最佳答案

如果单元格位于主对角线或上方或下方,则抛出一个循环并获取单元格的值。然后检查值是否为 0,如果单元格不在所需的对角线中,则返回 false 检查值如果不为 0,则返回 false。因此,仅当上、下或主对角线值不为 0 并且其他所有值均为 0 时将会成真。

示例

 public boolean isTriDiagonal(int[][] matrix) {
        for (int x = 0; x < matrix.length; x++) {
            for (int y = 0; y < matrix[x].length; y++) {
                int cell = matrix[x][y];

                if ((x==y) || (x-1==y) || (x+1==y)) {
                    if (cell == 0) {
                        return false;
                    }
                } else {
                    if (cell != 0) {
                        return false;
                    }
                }
            }
        }
        return true;
    }

示例

enter image description here

int[][] matrix = {{1, 4, 0, 0}, {3, 4, 1, 0}, {0, 2, 3, 4}, {0, 0, 1, 3}};
System.out.println(isTriDiagonal(matrix));

输出

true

关于java - 如何检查矩阵是否是三对角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237437/

相关文章:

java - 在 WindowManager 中为 ImageView 设置动画 - Android

javascript - Javascript 中的矩阵对象和矩阵旋转函数

java - 旋转矩阵的排序算法 - 如何确保非零元素在对角线上?

java - 实现自定义连接池?

java - Arquillian JAVA EE 5 和 JBoss 4.2

java - 获取当月的天数

python - 为什么我的列表没有按照预期的方式改变?

java - Java中serialVersionUID是如何序列化的?

c++ - GDB 无法显示 Boost uBLAS 矩阵?

r - 使用 data.table 的矩阵运算和组件式加法