Replace odd numbers with infinity
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
timetry2
el 12 de Oct. de 2019
Comentada: timetry2
el 13 de Oct. de 2019
I have a code that looks like the following:
C = randi([100,200],1000,1000);
evenIndices = rem(C,2) == 0
allTheEvenNumbers = C(evenIndices)
allTheEvenNumbers = allTheEvenNumbers -1
locations = find(allTheEvenNumbers)
C(locations) = Inf
I am wanting the odd numbers to be replaced by Inf but it is not working. Where am I going wrong?
2 comentarios
per isakson
el 13 de Oct. de 2019
Editada: per isakson
el 13 de Oct. de 2019
@Adam Thanks, I missed that.
Respuesta aceptada
per isakson
el 12 de Oct. de 2019
Editada: per isakson
el 13 de Oct. de 2019
%%
C = randi([100,200],3,6)
is_odd = rem(C,2) == 1;
D = C;
D( is_odd ) = inf
returns
C =
117 103 107 159 122 113
137 199 184 123 152 191
134 152 158 145 188 133
D =
Inf Inf Inf Inf 122 Inf
Inf Inf 184 Inf 152 Inf
134 152 158 Inf 188 Inf
which looks ok.
"Where am I going wrong?"
- The title says "Replace odd ..." and the code focuses on even
- experimenting with a large matrix, which is difficult to inspect
- evenIndices is a logical index, in which true indicates locations with even values. evenIndices is not an optimal name.
- allTheEvenNumbers is a vector of integers in the range of [ 100, 200 ]. The number of elements in allTheEvenNumbers is approximately half of that in C.
- it is not meaningsful to substract one from allTheEvenNumbers. Ok, is your intention a negation of a logical value?
- ...
In response to a comment
In the previous question, there is a requirement to use the function, find()
One may do that, but there is little point
%%
C = randi([100,200],3,6)
C( find( rem(C,2) == 1 ) ) = inf
returns
C =
180 103 168 139 171 104
196 185 176 166 103 109
166 194 175 117 127 183
C =
180 Inf 168 Inf Inf 104
196 Inf 176 166 Inf Inf
166 194 Inf Inf Inf Inf
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!