我目前有一個程序,當用戶詢問一個整數時,根據輸入生成一個2d矩陣(即2:2格子中的2個結果的輸入) 。Java中的二維矩陣加倍
然後程序用隨機數0-9填充這個矩陣,然後創建一個新的矩陣,其大小是原始矩陣的兩倍(2x2變成4x4,3x3到6x6等)。
但是,我無法得到正確複製的結果。我試圖讓矩陣以這樣的方式,從一個矩陣像這樣重複: 1 2 3 4 5 6 7 8 9
這將產生一個矩陣: 1 1 2 2 3 3 1 1 2 2 3 3 4 4 5 5 6 6 4 4 5 5 6 6 7 7 8 8 9 9 7 7 8 8 9 9
目前,我只是用兩個用於循環來生成這個矩陣,但它不打印出正確的結果。
public static void main(String[] args) {
System.out.println("Enter the size of the matrix.");
Scanner keyboard = new Scanner(System.in);
Random random = new Random();
int n = keyboard.nextInt();
int[][] matrix = new int[n][n];
for (int x=0;x<n;x++)
{
for (int y=0;y<n;y++)
{
matrix[x][y] = random.nextInt(10);
}
}
System.out.println("The matrix is");
for (int x=0;x<matrix.length;x++)
{
for (int y=0;y<matrix.length;y++)
{
System.out.print(matrix[x][y]+" ");
}
System.out.println("");
}
int nDouble = n * 2;
int c = 1;
int[][] matrixDoubled = new int[nDouble][nDouble];
for (int y=0;y<matrix.length;y++)
{
for (int x=0;x<matrix.length;x++)
{
matrixDoubled[x][y] = matrix[x][y];
matrixDoubled[x+c][y] = matrix[x][y];
matrixDoubled[x][y+c] = matrix[x][y];
matrixDoubled[x+c][y+c] = matrix[x][y];
c = c + 1;
}
c = 1;
}
System.out.println("The doubled matrix is");
for (int x=0;x<matrixDoubled.length;x++)
{
for (int y=0;y<matrixDoubled.length;y++)
{
System.out.print(matrixDoubled[x][y]+" ");
}
System.out.println("");
}
}
}
德魯,這看起來像一個家庭主婦k任務,這不完全是StackOverflow中的人員想回答的問題。人們可能會理解你很懶惰,並要求他們爲你工作以獲取計算器點數。而且,如果這是真的,那麼對於老師和你自己來說你是不道德的。 – Leo
同一問題:http://stackoverflow.com/questions/34756346/doubling-a-matrix – scsere