【问题标题】:How to convert three array to a matrix(Two dimensional array) in java如何在java中将三个数组转换为矩阵(二维数组)
【发布时间】:2020-05-02 18:43:34
【问题描述】:

我要把下面写的三个数组转换成一个矩阵(二维数组)。

其实我做了很多努力但不明白如何填充矩阵这是我的代码:

double[] a1 = {2.1, 2.2, 2.3, 2.4, 2.5};
double[] a2 = {3.1, 3.2, 3.3, 3.4, 3.5};
double[] a3 = {4.1, 4.2, 4.3, 4.4, 4.5};

for(int i=0; i< a1.length; i++)
    {
       double[][] X = new double[i][3];
       for(int j=0; j<3; j++)
       {
                X[i][j] = "How should I fill the X Matrix";
       }

     }

我希望我的结果应该是这样的

        //       x1    x2     x3  
        X = { {  2.1,  3.1,  4.1 },
              {  2.2,  3.2,  4.2 },
              {  2.3,  3.3,  4.3 },
              {  2.4,  3.4,  4.4 },
              {  2.5,  3.5,  4.5 },
            }

【问题讨论】:

标签: java


【解决方案1】:

您可以将ai-Arrays 放入一个列表并对其进行迭代以填充您的二维数组x,如下所示:

    double[] a1 = {2.1, 2.2, 2.3, 2.4, 2.5};
    double[] a2 = {3.1, 3.2, 3.3, 3.4, 3.5};
    double[] a3 = {4.1, 4.2, 4.3, 4.4, 4.5};

    final List<double[]> aList = Arrays.asList(a1, a2, a3);

    double[][] x = new double[a1.length][3];
    for (int i = 0; i < a1.length; i++) {
      for (int j = 0; j < aList.size(); j++) {
        x[i][j] = aList.get(j)[i];
      }
    }

备注:

  • 在循环外初始化x
  • 变量以小写字母开头
  • java 风格的数组声明形式为type[] name

【讨论】:

    【解决方案2】:

    这是一个有效的代码:

            double a1[] = {2.1, 2.2, 2.3, 2.4, 2.5};
            double a2[] = {3.1, 3.2, 3.3, 3.4, 3.5};
            double a3[] = {4.1, 4.2, 4.3, 4.4, 4.5};
            double X[][] = new double[a1.length][3];
            for(int i=0; i< a1.length; i++){
                    X[i][0] = a1[i];
                    X[i][1] = a2[i];
                    X[i][2] = a3[i];
            }
            for(int i = 0 ; i <a1.length ; i++){
                for(int j = 0 ; j < 3 ; j++){
                    System.out.print(X[i][j] + " ");
                }
                System.out.println();
            }
    

    我认为这很简单。问题是,如果您要对任意数量的数组执行此操作,那么它将无法正常工作。您必须注意的一件事是,您不能每次在 X 中放一些东西时都重新定义它。您定义一次并坚持下去。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多