gpt4 book ai didi

java - java中的矩阵类

转载 作者:行者123 更新时间:2023-12-02 07:03:20 27 4
gpt4 key购买 nike

我需要创建一个矩阵类,它有 2 个构造函数,以及一个对矩阵中数字及其周围数字进行过滤平均的方法。

这是我想到的,但是当我尝试编译它时,出现错误:“预期数组,找到矩阵”。

请帮忙!

/**
* This class represents a two dimensional Matrix
*
*/
public class Matrix
{
private int[][] _matrix;

/**
* Constructs a Matrix from a two-dimensional array; the dimensions as well as the values of this Matrix will be the same as the dimensions and values of the two-dimensional array.
*/
public Matrix(int[][] array)
{
for (int i=0; i < array.length;i++)
for (int j=0; j < array[i].length;j++)
_matrix[i][j] = array[i][j];
}

/**
* Constructs a size1 by size2 Matrix of zeroes.
*/
public Matrix(int size1, int size2)
{
for (int i=0; i < size1;i++)
for (int j=0; j < size2;j++)
_matrix[i][j]=0;
}

/**
* Calculates and returns a copy of this Matrix after it has been filtered from noise. All pixels are represented by a number 0-255 inclusive.
*
* @return a copy of this Matrix after it has been filtered from noise
*/
public Matrix imageFilterAverage()
{
Matrix newMatrix = new Matrix(_matrix);


for (int i=0; i < _matrix.length;i++)
for (int j=0; i < _matrix[i].length;j++)
newMatrix[i][j] = _matrix[i-1][j-1] + _matrix[i-1][j] + _matrix[i-1][j+1] + _matrix[i][j-1] + _matrix[i][j] + _matrix[i][j+1] + _matrix[i+1][j-1] + _matrix[i+1][j] + _matrix[i+1][j+1];
}


}

编辑

大家好,感谢您的帮助。现在我正在尝试创建一个 toString 方法,它将打印矩阵,数字之间有制表符,但在最后一行的最后一个数字之后,不会有制表符。无法真正发挥作用,不知道如何返回。但到目前为止,这是我想到的:

 public String toString()
{
for (int i=0; i < _matrix.length; i++) {
for (int j=0; j < _matrix[i].length; j++)
if (j == (_matrix[i].length - 1))
System.out.print(_matrix[i][j]);
else System.out.print(_matrix[i][j] + "\t");
System.out.println();
}


}

最佳答案

newMatrix[i][j] =  _matrix[i-1][j-1] + _matrix[i-1][j] + _matrix[i-1][j+1] + _matrix[i][j-1] + _matrix[i][j] + _matrix[i][j+1] + _matrix[i+1][j-1] + _matrix[i+1][j] + _matrix[i+1][j+1];

此行会导致错误,因为您无法在 Matrix 上使用 []。您只能在数组上使用该运算符。

此外,这会导致错误,因为您尚未将 _matrix 设置为等于任何内容:

for (int i=0; i < array.length;i++)
for (int j=0; j < array[i].length;j++)
_matrix[i][j] = array[i][j];

在这些行之前添加 _matrix = new int[array.length][array[0].length]

关于java - java中的矩阵类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16381486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com