Bal*_* D. 2 java arrays matrix
有谁知道如何在Java中构造以下矩阵?

我可以看到一个转置模式,但我可能会在错误的轨道上.这就是我到目前为止......不要笑:-)
import java.io.*;
public class Diagonal
{
public static void main(String[] args)throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(isr);
int dim;
do
{
System.out.print("Dimension: ");
dim = Integer.parseInt(in.readLine());
}while(dim<=0);
int[][] matrix = new int[dim][dim];
for(int i=0;i<matrix.length;i++)
{
for(int j=0;j<matrix[i].length;j++)
{
matrix[i][j] = j+1;
}
}
//Transpose
int transpose[][] = matrix;
for(int i=0;i<dim;i++)
{
for(int j=0;j<dim;j++)
{
transpose[j][i] = matrix[i][j];
}
}
//print transpose
for(int i=0;i<transpose.length;i++)
{
for(int j=0;j<transpose[i].length;j++)
{
System.out.print(transpose[i][j]);
}
System.out.println("");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定,但我认为它被称为toeplitz矩阵......
GRTS.
请注意:m[i][j] = Math.abs(i - j) + 1.一旦你看到了,创建矩阵非常简单:
private static int[][] createMatrix(int n) {
int[][] m = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
m[i][j] = Math.abs(i - j) + 1;
}
}
return m;
}
Run Code Online (Sandbox Code Playgroud)
你可以尝试一下:
public static void main(String[] args) {
for (int[] row : createMatrix(8)) {
System.out.println(Arrays.toString(row));
}
}
Run Code Online (Sandbox Code Playgroud)
打印:
[1, 2, 3, 4, 5, 6, 7, 8]
[2, 1, 2, 3, 4, 5, 6, 7]
[3, 2, 1, 2, 3, 4, 5, 6]
[4, 3, 2, 1, 2, 3, 4, 5]
[5, 4, 3, 2, 1, 2, 3, 4]
[6, 5, 4, 3, 2, 1, 2, 3]
[7, 6, 5, 4, 3, 2, 1, 2]
[8, 7, 6, 5, 4, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)