Replacing min and max values

For a given matrix I need to replace each element which is not min or max with the value 99
For example let
M=[5 0 2;8 3 1;1 8 0]
I tried the following code
M(M~=min(M(:))|M~=max(M(:)))=99;
but it replace all the matrix elements include 8 and 0 which are the max/min elements

Respuestas (1)

Star Strider
Star Strider el 25 de Mzo. de 2018

0 votos

Use ‘logical indexing’:
M=[5 0 2;8 3 1;1 8 0];
Mn = M == min(M)
Mx = M == max(M)
See the documentation on Using Logicals in Array Indexing (link).
I leave the rest to you.

Categorías

Etiquetas

Preguntada:

el 25 de Mzo. de 2018

Respondida:

el 25 de Mzo. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by