【问题标题】:Method to assigned value to array using loop使用循环为数组赋值的方法
【发布时间】:2015-03-14 18:33:08
【问题描述】:

如何编写一个通过循环将一组值分配给多维数组的方法?

double [][] A = new double [3][3];// 
    A_array[0][0]=1;
    A_array[0][1]=2;
    A_array[1][0]=3;
    A_array[1][1]=4;

我可以按上述方式编写,但我希望“动态地”这样做;

public class Test {

public static void main(String[] args) {

     double [] [] a = {{1,2,3},{4,5,6},{7,8,9}};

然后是在数组中分配上述值的方法:

public class matrixloop {

private double [][]a;

public matrixloop ( double [][] a)

{
    this.a=a;   
}

public double [][] assigned_1 (double [][] a)

{ 
    for (int c=0; c<3; c++)
        for (int d = 0; d<3; d++)
        this.a[c][d]=a[c][d];
        return a;

}

但是这个方法不行,

【问题讨论】:

  • 我也不打算将数字序列分配给多维数组
  • method is not working 是什么意思?你只是在复制数组?
  • 我写的方法不起作用,我想在主类中给出一组值,然后一个方法会将它们分配给一个数组。例如,我希望 1 在 [0][0],5 在 [0][1],8 在 [0][2] 等等

标签: java arrays for-loop matrix


【解决方案1】:

好的,我不完全确定这个问题,但我会尝试回答。基本上你想深拷贝一个矩阵?这里有几个问题:

  1. 我认为一个重要的风格提示是类名应该以大写字母开头。我知道这并不能解决所有问题,但这是一种很好的做法。
  2. 您应该尝试在您的 for 循环周围加上一些大括号 - 另一种风格提示,但我认为对于初学者来说很重要(不希望出现愚蠢的语法错误)
  3. 如果您想“动态地”循环矩阵,那么您应该能够调整您的长度。简而言之 - 不要只放一个 3 ,而是使用数组的长度属性。

在我陷入任何其他问题之前,我会向您发送一些(希望是)有用的资源:

Java array tutorial
Java style- because I think it's important...
Multi-Dimensional arrays

我希望这会有所帮助。

=== 编辑 ===

如果你想转置一个 3*3 矩阵,那么你可以用这样的 for 循环来做到这一点:

public double[][] transpose( double[][] oldMatrix ){
    int size = 3;
    double[][] newMatrix = new double[size][size];
    for (int i = 0; i < size; i++){
        for (int j = 0; j < size; j++){
            newMatrix[j][i] = oldMatrix[i][j];
        }
    }
    return newMatrix;
}

【讨论】:

  • 感谢链接和建议,基本上我是想转置一个 3*3 的数组(矩阵),所以我会初始化一个 3*3 的矩阵,进行一定的计算(比如找到行列式)。 ..) 然后我会将它转置为 b[j][i]=a[i][j],所以为了做到这一点,我认为我必须将数组大小处理为 a[i][j ]
  • 我编辑了我的答案以提供一个转置 3*3 矩阵的示例。将其扩展到任何大小的矩阵(2*7、9000*9000 等)是一种很好的做法
猜你喜欢
  • 2015-03-01
  • 2016-01-17
  • 1970-01-01
  • 2017-08-04
  • 2021-06-09
  • 2019-06-27
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多