【发布时间】:2014-07-13 20:20:53
【问题描述】:
有人知道如何用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("");
}
}
}
我不确定,但我认为它被称为托普利兹矩阵......
Grts.
【问题讨论】:
-
请注意:
m[i][j] = Math.abs(i - j) + 1 -
正是,spot的值反映了与i->j的“距离”。你所拥有的有点反向-Circulant matrix
-
谢谢大家!现在已经看到了曙光;-)