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

35 visualizaciones (últimos 30 días)
Chris
Chris el 3 de Dic. de 2022
Respondida: Walter Roberson el 3 de Dic. de 2022
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.

Respuesta aceptada

Voss
Voss el 3 de Dic. de 2022
Editada: Voss el 3 de Dic. de 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

Más respuestas (2)

Image Analyst
Image Analyst el 3 de Dic. de 2022
Try this
outputMatrix = inputMatrix ~= 0

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

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by