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 日

0 投票

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.

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

タグ

質問済み:

2018 年 3 月 25 日

回答済み:

2018 年 3 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by