在 Java 中添加矩阵

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16123242/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 21:58:37  来源:igfitidea点击:

Add Matrices in Java

javamatrix

提问by syb0rg

I need to write a short program on how to add two matrices.. The first matrix should look like this:

我需要编写一个关于如何添加两个矩阵的简短程序。第一个矩阵应该如下所示:

1 2 3 4 5 6 7 8 9 10
11 12 13.......19 20
21................30
31................40
41................50
etc..
91...............100

But I don't really come to a solution how to increment the first array.. :S

但我并没有真正想出如何增加第一个数组的解决方案.. :S

Here is what I got so far:

这是我到目前为止所得到的:

package uebung05;

public class MatrixAddition
{
    public static void main(String[] argv)
    {
        int firstArray[][]  = new int[10][10];
        int secondArray[][] = new int[10][10];
        int ergArray[][]    = new int[10][10];

        System.out.println("Matrix 1\n----------------------------");

        // Inkrementieren der ersten Matrix
        for(int row = 0; row < firstArray.length; row++)
        {
            for(int column = 0; column < firstArray[row].length; column++)
            {
                // Increment Array here???
                System.out.print(firstArray[row][column] + "  ");
            }
            System.out.println();
        }

        System.out.println("\nMatrix 2\n----------------------------");

        // Dekrementieren der zweiten Matrix
        for(int row = 0; row < secondArray.length; row++)
        {
            for(int column = 0; column < secondArray[row].length; column++)
            {
                // Array mit Werten befüllen
                secondArray[row][column] = column + 1;
                System.out.print(secondArray[row][column] + "  ");
            }
            System.out.println();
        }

        System.out.println("\nAddition beider Matrizen\n----------------------------");

        // Addition firstArray & secondArray
        for(int row = 0; row < ergArray.length; row++)
        {
            for(int column = 0; column < ergArray[row].length; column++)
            {
                // Addition
                ergArray[row][column] = firstArray[row][column] +
                                        secondArray[row][column];

                System.out.print(ergArray[row][column] + "  ");
            }
            System.out.println();
        }
    }
}

回答by syb0rg

Method to add the first and second matrices together:

将第一个和第二个矩阵相加的方法:

public static int[][] matrixAdd(int[][] A, int[][] B)
{
    // Check if matrices have contents
    if ((A.length < 0) || (A[0].length < 0)) return B;
    if ((B.length < 0) || (B[0].length < 0)) return A;

    // create new matrix to store added values in
    int[][] C = new int[A.length][A[0].length];

    for (int i = 0; i < A.length; i++)
    {
        for (int j = 0; j < A[i].length; j++)
        {
            C[i][j] = A[i][j] + B[i][j];
        }
    }
    return C;
}

回答by syb0rg

But I don't really come to a solution how to increment the first array.

但我并没有真正想出如何增加第一个数组的解决方案。

// Inkrementieren der ersten Matrix
        for(int row = 0; row < firstArray.length; row++)
        {
            for(int column = 0; column < firstArray[row].length; column++)
            {
                firstArray[row][column] = 1+ row*10 + column; 
                System.out.print(firstArray[row][column] + "  ");
            }
            System.out.println();
        }

回答by gkiko

Sum two matrices in the new one and return:

对新矩阵中的两个矩阵求和并返回:

public int[][] addMatrixes(int[][] src1, int[][] src2){
  int[][] dst = new int[src1.length][src1[0].length];
  for(int i=0;i<src1.length;i++){
    for(int j=0;j<src1[0].length;j++){
      dst[i][j] = src1[i][j] + src2[i][j];
    }
  }
  return dst;
}

回答by bendaizer

Not very generic, but you can define your first matrix with only one easy loop :

不是很通用,但您可以只用一个简单的循环来定义您的第一个矩阵:

    int dim = 10;
    int size = dim*dim;
    int firstArray[][]  = new int[dim][dim];
    int row, column;

    for (int index = 0; index < size; index++ ){
        row = index/dim;
        column = index%dim;
        firstArray[row][column]=row*10+column+1;

        System.out.print(String.valueOf(firstArray[row][column])+"\t");
        if (column == 9){ System.out.println("");}
    }