Replace odd numbers with infinity

4 Ansichten (letzte 30 Tage)
timetry2
timetry2 am 12 Okt. 2019
Kommentiert: timetry2 am 13 Okt. 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 Kommentare
per isakson
per isakson am 13 Okt. 2019
Bearbeitet: per isakson am 13 Okt. 2019
@Adam Thanks, I missed that.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

per isakson
per isakson am 12 Okt. 2019
Bearbeitet: per isakson am 13 Okt. 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
  1 Kommentar
timetry2
timetry2 am 13 Okt. 2019
Thank you so much! This really helped

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by