Java程式用於減去兩個矩陣
對於兩個給定的m×n大小的矩陣,編寫一個Java程式來減去它們。矩陣具有其元素的行和列排列。具有m行和n列的矩陣可以稱為m×n矩陣。矩陣中的單個條目稱為元素,可以用a[i][j]表示,這意味著元素a位於第i行和第j列。
請注意,只有當每個矩陣的行數和列數相等時,才能減去兩個矩陣。現在,讓我們用一個示例場景來理解問題陳述:
示例場景
Input 1: matrix1 = {{2, 3, 4}, {5, 2, 3}, {4, 6, 9}} Input 2: matrix2 = {{1, 5, 3}, {5, 6, 3}, {8, 1, 5}} Output: res = {{1, -2, 1}, {0, -4, 0}, {-4, 5, 4}}
使用巢狀for迴圈
在這種方法中,使用外迴圈迭代兩個矩陣的每個元素,並使用內迴圈將第一個矩陣中[i][j]位置的元素與第二個矩陣中[i][j]位置的元素相減,並將值儲存在結果矩陣的[i][j]位置。
示例
在這個Java程式中,我們使用巢狀for迴圈來減去兩個矩陣。
public class Tester { public static void main(String args[]) { //matrix 1 int a[][] = { { 1, 3, 4 }, { 2, 4, 3 }, { 3, 4, 5 } }; //matrix 2 int b[][] = { { 1, 3, 4 }, { 2, 4, 3 }, { 1, 2, 4 } }; //result matrix with 3 rows and 3 columns int c[][] = new int[3][3]; System.out.println("The result after subtraction of the given matrices is:"); // subtract and print matrix for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { c[i][j] = a[i][j] - b[i][j]; System.out.print(c[i][j] + " "); } System.out.println(); } } }
上述程式碼的輸出如下:
The result after subtraction of the given matrices is: 0 0 0 0 0 0 2 2 1
使用巢狀while迴圈
這是在Java中減去兩個矩陣的另一種方法。在這裡,我們使用巢狀while迴圈代替巢狀for迴圈。實現使用了與前一個示例相同的邏輯。
示例
在這裡,我們使用巢狀while迴圈在Java中減去兩個矩陣。
public class SubtractMatrices { public static void main(String args[]) { int mtr1[][] = { {1, 7}, {9, 2} }; int mtr2[][] = { {6, 3}, {5, 1} }; int subtract[][] = new int[2][2]; int matrix_size = 2; System.out.println("First matrix defined as::"); for (int i = 0; i < matrix_size; i++) { for (int j = 0; j < matrix_size; j++) { System.out.print(mtr1[i][j] + "\t"); } System.out.println(); } System.out.println("Second matrix defined as::"); for (int i = 0; i < matrix_size; i++) { for (int j = 0; j < matrix_size; j++) { System.out.print(mtr2[i][j] + "\t"); } System.out.println(); } int i = 0; while(i < matrix_size) { int j = 0; while(j < matrix_size) { subtract[i][j] = mtr1[i][j] - mtr2[i][j]; j++; } i++; } System.out.println("Difference betwen given matrices is:: "); i = 0; while(i < matrix_size) { int j = 0; while(j < matrix_size) { System.out.print(subtract[i][j] + "\t"); j++; } System.out.println(); i++; } } }
執行上述程式碼後,將顯示以下輸出:
First matrix defined as:: 1 7 9 2 Second matrix defined as:: 6 3 5 1 Difference betwen given matrices is:: -5 4 4 1
廣告