Filter löschen
Filter löschen

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

26 Ansichten (letzte 30 Tage)
Chris
Chris am 3 Dez. 2022
Beantwortet: Walter Roberson am 3 Dez. 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.

Akzeptierte Antwort

Voss
Voss am 3 Dez. 2022
Bearbeitet: Voss am 3 Dez. 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

Weitere Antworten (2)

Image Analyst
Image Analyst am 3 Dez. 2022
Try this
outputMatrix = inputMatrix ~= 0

Walter Roberson
Walter Roberson am 3 Dez. 2022
logical(inputMatrix)
However this will fail if the input includes nan

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by