Home  >  Article  >  Java  >  Replace negative and positive numbers in matrix with 0 and 1 in Java

Replace negative and positive numbers in matrix with 0 and 1 in Java

王林
王林forward
2023-08-29 08:29:081108browse

Replace negative and positive numbers in matrix with 0 and 1 in Java

In Java, an array is an object. It is a non-primitive data type that stores data-like values. A matrix in java is nothing but a multidimensional array representing multiple rows and columns.

Here we are given a matrix which contains a set of elements including positive and negative numbers and as per the problem statement we have to replace negative numbers with 0 and positive numbers with 1.

Let’s delve into this article and learn how to do it using the Java programming language.

Show you some examples

Example 1

Given matrix=

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

After replacing negative numbers with 0 and positive numbers with 1,

The resulting matrix is ​​-

0 	1	0
1	0	1
0	0	1

Example 2

Given matrix=

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

After replacing negative numbers with 0 and positive numbers with 1,

The resulting matrix is ​​-

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

Example 3

Given matrix =

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

After replacing negative numbers with 0 and positive numbers with 1,

The resulting matrix is: -

0 	0	0
1	1	1
0	1	0

algorithm

Algorithm 1

  • Step 1 - Create a 2D array matrix to store the numbers.

  • Step-2 - Call the replaceNum method to replace negative numbers in the matrix with 0 and positive numbers with 1.

  • Step-3 - Print the result matrix.

  • Step-4 - In the replaceNum method, use a for loop to iterate over the rows and columns of the matrix.

  • Step-5 - For each element in the matrix, use the ternary operator to replace the number with 0 or 1, depending on whether it is a negative or positive number.

Algorithm 2

  • Step 1 - Create a 2D array matrix to store the numbers.

  • Step-2 - Call the replaceNum method to replace negative numbers in the matrix with 0 and positive numbers with 1.

  • Step-3 - Print the result matrix.

  • Step-4 - In the replaceNum method, use a for loop to iterate over the rows and columns of the matrix.

  • Step-5 - For each element in the matrix, use the Math.signum method to determine the sign of the number (-1 for negative, 0 for 0, 1 for positive). Then use an if-else statement to replace the number with 0 or 1, depending on whether it is negative or positive

grammar

To get the length of an array (the number of elements in the array), the array has a built-in property, which is length

The following is its syntax -

array.length

Among them, "array" refers to the array reference.

The Math.signum() method in Java is a mathematical function that returns the sign of a given double or floating point value (-1 means negative, 0 means 0, 1 means positive) .

The following is its syntax -

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

Among them, ‘mat’ refers to the given matrix.

Multiple methods

We provide solutions in different ways.

  • By using the ternary operator

  • By using the Math.signum function

Let’s look at the program and its output one by one.

Method 1: Use the ternary operator

In this method, the matrix elements will be initialized in the program. The user-defined method is then called by passing the matrix as an argument and uses the ternary operator to replace negative numbers with 0 and positive numbers with 1 according to the algorithm.

Example

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;
         }
      }
   }
}

Output

0 1 0 
1 0 1 
1 1 0

Method 2: Using the Math.signum function

In this method, the matrix elements will be initialized in the program. The user-defined method is then called by passing the matrix as a parameter and inside the method using the Math.signum method, negative numbers are replaced with 0 and positive numbers are replaced with 1 according to the algorithm.

Example

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;
            }
         }
      }
   }
}

Output

0 0 1 
1 0 0 
1 1 1

In this article, we explored different ways to replace negative numbers with 0 and positive numbers with 1 in a matrix using the Java programming language.

The above is the detailed content of Replace negative and positive numbers in matrix with 0 and 1 in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete