Java 如何显示单位矩阵
在Java中,数组是一个对象。它是一种非原始数据类型,用于存储相同数据类型的值。Java中的矩阵实际上就是一个多维数组,表示多行和多列。
单位矩阵是一个方阵,其中所有主对角线上的元素(即从左上角到右下角的对角线)都是1,其他所有元素都是0。它用符号“I”或“In”表示,其中“n”表示矩阵的大小。
单位矩阵在线性代数中很重要,因为它在矩阵乘法中充当单位元素,意味着当一个矩阵乘以单位矩阵时,结果是原来的矩阵。
在这里,我们已经给出了矩阵的长度,并且我们需要显示该长度的单位矩阵。
让我们开始吧!
展示一些实例
实例-1
给定矩阵的长度 = 2
2×2的单位矩阵 =
1 0
0 1
实例-2
给定矩阵的长度=4
2*2的单位矩阵=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
实例-3
给定矩阵的长度为6
2×2的单位矩阵=
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
步骤
步骤-1
- 步骤-1 - 该程序使用名为identity的2D数组创建一个大小为’n’的单位矩阵。
-
步骤-2 - 它使用嵌套for循环遍历矩阵的每个元素,并检查当前元素是否在对角线上(行索引等于列索引)。
-
步骤-3 - 如果它在对角线上,则将元素设置为1,否则设置为0。
-
步骤-4 - 一旦矩阵填充了适当的值,它使用另一组嵌套for循环将矩阵显示在控制台上。
-
步骤-5 - 最后,在打印每行后打印一个换行符,以以方形形式显示矩阵。
步骤-2
-
步骤-1 - 该程序使用名为identity的2D数组创建一个大小为n的单位矩阵。
-
步骤-2 - 然而,它不使用嵌套for循环来将对角线元素填充为1和其他元素填充为0,而是使用Arrays.fill()方法来首先用0填充矩阵的每一行。
-
步骤-3 - 然后,它使用另一个for循环将每行的对角线元素设置为1。
-
步骤-4 - 最后,它使用另一组嵌套for循环将矩阵显示在控制台上。
-
步骤-5 - 在打印每行后打印一个换行符,以以方形形式显示矩阵。
语法
1. Java中的 length() 方法返回给定矩阵的长度。
下面是它的语法 –
inputMatrix.lenght
在这里,’inputMatrix’是给定矩阵。
2. IntStream.range() 是Java中的一个方法,它生成从startInclusive到endExclusive – 1的连续整数流。
IntStream.range(startInclusive, endExclusive)
它可以用来对一组整数执行操作。例如,在第二个代码中,它被用来遍历矩阵的行和列。
然后,在流上调用 forEach 方法,对流中的每个元素执行一个操作。
多种方法
我们提供了不同的解决方案。
- 通过使用嵌套的for循环
-
通过使用Arrays.fill()方法
让我们逐个查看程序及其输出。
方法-1:通过使用嵌套的for循环
在这种方法中,程序将初始化矩阵的长度。然后根据算法使用嵌套的for循环显示该长度的单位矩阵。
示例
public class Main {
public static void main(String[] args) {
int n = 5; // size of the matrix
int[][] identity = new int[n][n];
// Fill the diagonal elements with 1 and other elements with 0
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(i == j)
identity[i][j] = 1;
else
identity[i][j] = 0;
}
}
// Display the matrix
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
System.out.print(identity[i][j] + " ");
}
System.out.println(); // print a newline after each row is printed
}
}
}
输出
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
方法2:使用Arrays.fill()方法
在这种方法中,程序将初始化矩阵的长度。然后根据算法,使用Arrays.fill()方法显示一个该长度的单位矩阵。
示例
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int n = 8; // size of the matrix
int[][] identity = new int[n][n];
// Fill the diagonal elements with 1 using Arrays.fill() method
for(int i = 0; i < n; i++) {
Arrays.fill(identity[i], 0); // fill each row with 0 initially
identity[i][i] = 1; // set the diagonal element to 1
}
// Display the matrix
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
System.out.print(identity[i][j] + " ");
}
System.out.println(); // print a newline after each row is printed
}
}
}
输出
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
在这篇文章中,我们使用Java编程语言探讨了展示单位矩阵的不同方法。