How can I change all numbers in matrix to 1? except for 0

38 views (last 30 days)
How can I change all numbers in matrix to 1? except for 0
I want to make the matrix which has 1(all the numbers) or 0.

Accepted Answer

Voss
Voss on 3 Dec 2022
Edited: Voss on 3 Dec 2022
One way:
M = randi(4,[5 5])-2 % a matrix with zero and non-zero elements
M = 5×5
-1 0 0 1 2 -1 -1 2 1 2 -1 1 -1 1 0 2 0 -1 1 2 0 0 1 2 1
M(M ~= 0) = 1 % replace non-zero elements with ones
M = 5×5
1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1
Another way:
M = randi(4,[5 5])-2 % a matrix with zero and non-zero elements
M = 5×5
-1 2 1 1 2 -1 2 2 0 -1 2 -1 0 2 -1 1 -1 1 -1 -1 -1 -1 0 0 -1
M(logical(M)) = 1 % replace non-zero elements with ones
M = 5×5
1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1

More Answers (2)

Image Analyst
Image Analyst on 3 Dec 2022
Try this
outputMatrix = inputMatrix ~= 0

Walter Roberson
Walter Roberson on 3 Dec 2022
logical(inputMatrix)
However this will fail if the input includes nan

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!