如何找到2D矩阵(5×5)中每8个元素的平均值并将其替换为元素编号(9)?

在Java编程(OOP)中

在弗里斯特代码应该像这样和例如:

IMG
(来源: 0zz0.com

===============>>#1 票数:1 已采纳

所以我只是为了好玩而已,这是我的代码。 它适用于任何大小的矩阵。

public class Matrixer
{

    final double[][] matrix, computedMatrix;
    final int rows, cols;

    public Matrixer(int N, int M, final double[][] imatrix)
    {
        rows = N;
        cols = M;
        matrix = imatrix;
        computedMatrix = new double[N][M];
    }

    public void computeAverages()
    {
        for (int i = 1; i < rows - 1; i++)
        {
            for (int j = 1; j < cols - 1; j++)
            {
                computedMatrix[i][j] = cellNeighborsAverage(i, j);
            }
        }
    }

    private double cellNeighborsAverage(int row, int col)
    {
        // Ignore center cell
        double sum = matrix[row - 1][col - 1] + matrix[row - 1][col]
                + matrix[row - 1][col + 1] + matrix[row][col - 1]
                + matrix[row][col + 1] + matrix[row + 1][col - 1]
                + matrix[row + 1][col] + matrix[row + 1][col + 1];
        return sum / 8;
    }

    public void printComputedMatrix()
    {
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                System.out.printf("%.2f", computedMatrix[i][j]);
                System.out.print(", ");
            }
            System.out.println();
        }
    }

    public static void main(String[] args)
    {
        final double[][] matrix =
        {
            {1, 2, 3, 4, 5},
            {5, 4, 3, 5, 1},
            {3, 2, 2, 3, 4},
            {2, 3, 4, 5, 3},
            {3, 2, 4, 5, 6},
        };

        Matrixer mx = new Matrixer(5, 5, matrix);
        mx.computeAverages();
        mx.printComputedMatrix();
    }
}

测试输出:

0.00, 0.00, 0.00, 0.00, 0.00, 
0.00, 2.63, 3.13, 3.13, 0.00, 
0.00, 3.25, 3.63, 3.38, 0.00, 
0.00, 2.75, 3.25, 3.88, 0.00, 
0.00, 0.00, 0.00, 0.00, 0.00

===============>>#2 票数:0

伪代码,因为这实际上不是特定于Java的问题:

var myMatrix = [
  [ x, x, x, x, x],
  [ x, x, x, x, x],
  [ x, x, x, x, x],
  [ x, x, x, x, x],
  [ x, x, x, x, x] ];

function neighborAverage(row, col) {
  return (( myMatrix[row-1][col-1] +
            myMatrix[row-1][col] +
            myMatrix[row-1][col+1] +
            myMatrix[row][col-1] +
            // skip the center element
            myMatrix[row][col+1] +
            myMatrix[row+1][col-1] +
            myMatrix[row+1][col] +
            myMatrix[row+1][col+1]) / 8));
}

function matrixAverage() {
  return ([
    [ neighborAverage(1, 1), neighborAverage(1, 2), neighborAverage(1, 3) ],
    [ neighborAverage(2, 1), neighborAverage(2, 2), neighborAverage(2, 3) ],
    [ neighborAverage(3, 1), neighborAverage(3, 2), neighborAverage(3, 3) ] ]);
}

两个注意事项:

  • matrixAverage()硬编码索引表示此伪代码仅适用于大小为5x5的矩阵。 但是,泛化该函数以使用任何大小的矩阵都应该很容易。

  • 该伪代码计算所有平均值,但不会覆盖原始矩阵中的任何值。 那可能是您想要的,也可能不是您想要的,因为您没有指定是否应使用每个新值来计算后续值(如果这样,则应以什么顺序计算值)。

  ask by user3554225 translate from so

未解决问题?本站智能推荐:

2回复

Java:查找数组中双打的平均值

我正在为Java类简介做作业。 作业的一部分是将文本文件中的双精度读入数组,然后使用其他方法来计算平均值。 到目前为止,我已经将双精度数读入了数组,但是我不确定如何在另一种方法中引用该数组来计算平均值。 我一直在网上搜索,但未找到任何结果,可能是因为我的术语不正确导致我没有相关的答案。
1回复

在java中查找pgm文件中2-d数组的平均值

嘿,我想为pgm文件构建一个2-d数组的低通滤波器。 该程序假设用它的平均值和它的8个最近邻居替换每个像素。 我被困住了,不知道我做错了什么。 谢谢您的帮助。 现在它给了我一个java.lang.ArrayIndexOutOfBoundsException:-1错误。
1回复

从文本文件中查找平均值

我正在尝试查找文本文件中每一行同一行数字的平均值。 例如,如果这是文本文件: 我想打印类似: For Competitor #1, the average is 5.8625 For Competitor #2, the average is 0.0000 For Competito
6回复

递归查找数组中偶数的平均值

我试图使用递归找到数组中所有偶数的平均值,但我陷入了困境。 我意识到对于每个奇数 n都必须递减 n因此我用正确的值除以,但是我无法确定如何使用递归进行计算。 考虑到当我return时它将恢复原状,因此我不了解如何跟踪n 。 有什么方法可以让我追踪n ,或者我完全以错误的方式看待
1回复

在部分填充的数组中查找平均值

这个想法是创建一个静态的方法,该方法将计算部分填充数组的平均薪水。 假设numEmployees持有数组中具有有效数据的元素数。 numEmployees传递给该方法。 我是否需要在计算填充数组的方法中添加零件? 喜欢: 还是应该在消息中的for循环中添加一部分并将其总数更
4回复

Java-计算存储在数组中的成绩的平均值+低于平均值的打印成绩

这里是初学者Java程序员。 我正在尝试编写一个程序,询问用户他们想要输入多少个等级。 然后,我要存储用户输入到数组中的成绩。 最后,我想查找输入的成绩的平均值,并打印出低于该平均值的每个成绩的列表。 到目前为止,我的代码计算了用户输入的成绩的平均值,但我不知道如何打印低于平均值的成绩。
1回复

Java在数组中调整了平均值

我在我的代码中搜索错误时遇到问题,我必须计算每行平均值而不使用不符合标准的行,具体取决于排除的百分比,例如,在下面的示例中我们有9行。 如果我们排除15%意味着我们必须丢弃第一行和最后一行。 这只是一个数组示例。 这部分我已经知道这是正确的,我创建了一个新的数组,每行的平均值。
8回复

Java中的数组求和和平均值

我有一个家庭作业,必须创建一个数组,对数组中的元素求和,然后找到数组中元素的平均值,但是我必须使用与求和方法相同的方法来做。 到目前为止,这就是我所看到的,我已经在书中查看并将其放入我的代码中,但是无法正确编译。
4回复

Java-查找数组的平均值,同时排除特定值。

我正在尝试计算并返回整数值数组的平均值。 问题是,我要从中计算平均值的数组具有需要查找平均值的值以及需要排除的值。 例如,将此作为我在数组中的数据集。 20,-999,-10、50,-999、40、30 我需要找到平均值,但要从计算中排除任何-999值。 如何从总和中删除-
3回复

使用ArrayList从文本文件中查找平均值

我们如何比较用户“ p”在arraylist o = val [1]中输入的值,然后将所有常见的地方货币相加以求平均值并显示数据 大于用户输入的资金