Replacing min and max values

5 次查看(过去 30 天)
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

回答(1 个)

Star Strider
Star Strider 2018-3-25
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.

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by