Java 将正负矩阵元素替换为0和1

Java 将正负矩阵元素替换为0和1

在Java中,数组是一个对象。它是一种非原始数据类型,用于存储相似数据类型的值。在Java中,矩阵就是一个多维数组,它表示多行和多列。

这里我们有一个包含正数和负数的元素集合的矩阵,根据问题要求,我们需要将负数替换为0,将正数替换为1。

让我们深入探讨本文,了解如何使用Java编程语言来实现。

一些示例

示例1

给定矩阵 =

-21     22  -23
24  -25 26
-27 -28 29

在将负数替换为0和正数替换为1之后,

得到的矩阵为 –

0   1   0
1   0   1
0   0   1

实例-2

给定矩阵=

-9  2   -2  4
-1  -7  -2  6
2   -2  -4  3
-1  4   7   -8

将负数替换为0,将正数替换为1后,

得到的矩阵为−

0   1   0   1
0   0   0   1
1   0   0   1
0   1   1   0

实例-3

给定矩阵 =

-1  -2  -3
4   5   6
-7  8   -9

将负数替换为0,正数替换为1后,

结果矩阵如下:

0   0   0
1   1   1
0   1   0

步骤

步骤-1

  • 步骤1 - 创建一个2D数组矩阵来存储数字。

  • 步骤2 - 调用replaceNum方法,在矩阵中将负数替换为0,正数替换为1。

  • 步骤3 - 打印结果矩阵。

  • 步骤4 - 在replaceNum方法中,使用for循环迭代矩阵的行和列。

  • 步骤5 - 对于矩阵中的每个元素,使用三元运算符将数字替换为0或1,取决于它是负数还是正数。

步骤-2

  • 步骤1 - 创建一个2D数组矩阵来存储数字。

  • 步骤2 - 调用replaceNum方法,在矩阵中将负数替换为0,正数替换为1。

  • 步骤3 - 打印结果矩阵。

  • 步骤4 - 在replaceNum方法中,使用for循环迭代矩阵的行和列。

  • 步骤5 - 对于矩阵中的每个元素,使用Math.signum方法确定数字的符号(负数为-1,0为0,正数为1)。然后使用if-else语句将数字替换为0或1,取决于它是负数还是正数。

语法

想要获取数组的长度(数组中元素的数量),有一个内置的数组属性,即length。

以下是它的语法 –

array.length

其中,’array’ 是数组的引用。

Java中的 Math.signum() 方法是一个数学函数,返回给定double或float值的符号(负数返回-1,0返回0,正数返回1)。

下面是它的语法:

Math.signum(mat[a][b]) == -1.0)

其中,’mat’指的是给定的矩阵。

多种方法

我们提供了不同的解决方案。

  • 使用三元运算符

  • 使用Math.signum函数

让我们逐个看看程序和输出。

方法1:使用三元运算符

在这种方法中,程序将初始化矩阵元素。然后通过将矩阵作为参数传递给用户定义的方法,并在方法内根据算法使用三元运算符将负数替换为0,正数替换为1。

示例

public class Main {
   public static void main(String[] args) {
      int[][] inputMatrix = {{-1, 2, -3},
         {4, -5, 6},
         {7, 8, -9}};

      // Call the User-defined method to replace negative and positive numbers
      replacenum(inputMatrix);

      // Print the resultant matrix
      for (int a = 0; a < inputMatrix.length; a++) {
         for (int b = 0; b < inputMatrix[a].length; b++) {
            System.out.print(inputMatrix[a][b] + " ");
         }
         System.out.println();
      }
   }

   // User-defined method to replace numbers 
   public static void replacenum(int[][] mat) {
      for (int a = 0; a < mat.length; a++) {
         for (int b = 0; b < mat[a].length; b++) {

            // Use a ternary operator to replace the number
            mat[a][b] = mat[a][b] < 0 ? 0 : 1;
         }
      }
   }
}

输出

0 1 0 
1 0 1 
1 1 0

方法2:使用Math.signum函数

在这个方法中,程序将初始化矩阵元素。然后通过将矩阵作为参数传递给用户定义的方法,并根据算法使用Math.signum方法在方法内部替换负数为0,正数为1。

示例

public class Main {
   public static void main(String[] args) {
      int[][] inputMatrix = {{-1, -2, 3},
         {4, -5, -6},
         {7, 8, 9}};

      // Call the User-defined method to replace negative and positive numbers
      replaceNum(inputMatrix);

      // Print the resultant matrix
      for (int a = 0; a < inputMatrix.length; a++) {
         for (int b = 0; b < inputMatrix[a].length; b++) {
            System.out.print(inputMatrix[a][b] + " ");
         }
         System.out.println();
      }
   }

   // User-defined method to replace numbers 
   public static void replaceNum(int[][] mat) {
      for (int a = 0; a < mat.length; a++) {
         for (int b = 0; b < mat[a].length; b++) {

            // Use an if-else statement with Math.signum method to replace the number
            if (Math.signum(mat[a][b]) == -1.0) {
               mat[a][b] = 0;
            } else {
               mat[a][b] = 1;
            }
         }
      }
   }
}

输出

0 0 1 
1 0 0 
1 1 1

在本文中,我们使用Java编程语言探索了在矩阵中用0替换负数和用1替换正数的不同方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程