Java 在矩阵的对角线中输入值的更智能的方法

Java 在矩阵的对角线中输入值的更智能的方法,java,arrays,matrix,diagonal,Java,Arrays,Matrix,Diagonal,这就是我目前如何解决在数组的对角线上添加元素的问题。我试过其他一些方法,但我并不满意。我相信应该有一种更聪明的方法来替代使用双循环和if语句。欢迎提出任何建议 public SampleClass(){ private static int nDims = 5; public static void main(String args[]){ identityMatrix(nDims); } public double[][] i

这就是我目前如何解决在数组的对角线上添加元素的问题。我试过其他一些方法,但我并不满意。我相信应该有一种更聪明的方法来替代使用双循环和
if
语句。欢迎提出任何建议

public SampleClass(){

    private static int nDims = 5;


    public static void main(String args[]){
          identityMatrix(nDims);

     }



    public double[][] identityMatrix(int input1dims){
            int nDims = input1dims;
            double[][] IM = new double[nDims][nDims];
            for (int i=0;i<nDims;i++){
                for (int j=0;j<nDims;j++){
                    if (i==j){
                        IM[i][j]=1;
                    }
                }
            }
            return IM;
   }
}
public SampleClass(){
私有静态int nDims=5;
公共静态void main(字符串参数[]){
识别矩阵(nDims);
}
公共双[][]标识矩阵(int input1dims){
int nDims=输入1DIMS;
double[]IM=新的double[nDims][nDims];

对于(int i=0;i只有在
i==j
的情况下才能执行某些操作。这应该告诉您只需要这些变量中的一个。事实上,您只需要一个循环,因为您只需要执行
nDims
操作

for (int i=0;i<nDims;i++){
    IM[i][i] = 1;
}

for(int i=0;i仅当
i==j
时才执行某些操作。这应该告诉您只需要这些变量中的一个。事实上,您只需要一个循环,因为您只需要执行
nDims
操作

for (int i=0;i<nDims;i++){
    IM[i][i] = 1;
}

对于(int i=0;i对于简单对角线,可以使用单个变量:

for (int i = 0; i < nDims; i++) {
    IM[i][i] = 1;
}
for(int i=0;i
但如果需要偏移对角线,可以执行以下操作:

for (int i = 0; j = 1; i < nDims && j < nDims; i++, j++) {
    IM[i][j] = 1;
}
for(int i=0;j=1;i
对于简单的对角线,可以使用单个变量:

for (int i = 0; i < nDims; i++) {
    IM[i][i] = 1;
}
for(int i=0;i
但如果需要偏移对角线,可以执行以下操作:

for (int i = 0; j = 1; i < nDims && j < nDims; i++, j++) {
    IM[i][j] = 1;
}
for(int i=0;j=1;i
+1表示偏移量。我喜欢这一个,而不是公认的答案。+1表示偏移量。我喜欢这一个,而不是公认的答案。