How to replace all odd numbers with infinity using find()

I have a code that looks like this: C = randi([100,200],1000,1000);
How would I replace all the odd numbers with infinity using the find() function. I read up on find but I am unsure how to replace just the odd numbers.
Thank you in advance

 Réponse acceptée

locations = find( Value_Is_Odd(C) );
where Value_Is_Odd is a function or expression that you write that takes in an array of values and returns a logical array of which entries are odd.
Hint: rem(), mod()

11 commentaires

But how would I replace the odd values with infinities?
locations would give you a vector list of index locations into C. You can assign something to all of those locations using the general forms
Array(Locations) = Value; %for scalar Value to be assigned to all those places
or
Array(Locations) = ValueVector; %for ValueVector being a vector the same size as Locations
I'm sorry Im still confused. So, could you show me what my code would look like? Thank you in advance
Adam Danz
Adam Danz le 11 Oct 2019
Modifié(e) : Adam Danz le 11 Oct 2019
C is a matrix.
This line below will give you the row and column numbers that are TRUE in the find() inputs.
[rowNum, colNum] = find(. . .)
Or, as Walter explained, this version below gives you the linear index of locations.
locations = find(. . .)
Experiment with both versions to understand the outputs.
Look at this example:
A = 1:10
locations = [2 7 9]
A(locations) = -1
Further example:
A = 1:10;
locations = find(A > 5);
A(locations) = -1
I understand the code now with the example. Thank you so much. However, is there a way to only retrieve odd numbers without having to manually input them after find?
Hint: rem(), mod()
Thank you so much for your help
I ended up with a code that looks like this:
C = randi([100,200],1000,1000);
evenIndices = rem(C,2) == 0
allTheEvenNumbers = C(evenIndices)
allTheEvenNumbers = allTheEvenNumbers -1
locations = find(allTheEvenNumbers);
C(locations) = Inf
However, the odd numbers are not being replaced by Inf. What am I doing wrong?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by