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

 Respuesta aceptada

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 comentarios

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 el 11 de Oct. de 2019
Editada: Adam Danz el 11 de Oct. de 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?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 11 de Oct. de 2019

Comentada:

el 12 de Oct. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by