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

15 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Voss
Voss il 3 Dic 2022
Modificato: Voss il 3 Dic 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

Più risposte (2)

Image Analyst
Image Analyst il 3 Dic 2022
Try this
outputMatrix = inputMatrix ~= 0

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

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by