How to rewrite the maximum element of an array by an avarage

1 回表示 (過去 30 日間)
Serhii Sheinych
Serhii Sheinych 2019 年 12 月 2 日
コメント済み: Serhii Sheinych 2019 年 12 月 2 日
I have an array of 100 random numbers and i need to detect the maximum value of an array and then replace it by mean value of an array.
I have no idea how to do it, help please.

採用された回答

ME
ME 2019 年 12 月 2 日
So, if I have interpreted your question correctly then you have an array (say A) and you wish to find the maximum valued element in A. Once found you then want to replace that maximum element with the mean of the elements in A? If that is right then you can do that with:
A(find(A==max(A)))=mean(A);
If that's not what you wanted then you may need to provide some more details on what exactly you want this to do.
  3 件のコメント
ME
ME 2019 年 12 月 2 日
So you could definitely find the mean without the maximum value using:
B = sort(A);
C = mean(B(1:end-1));
where C is the mean of the array excluding the maximum element. Then if you wanted to replace the maximum element then you'd obviously have to use:
A(find(A==max(A))) = C;
Of course if the order of your random elements doesn't matter to you then you could sort the elements first and then save yourself from having to make a sorted duplicate of your A array (not a problem for small examples but if your arrays are going to get very large then this may become an issue.
A = sort(A);
A(find(A==max(A))) = mean(A(1:end-1));
Serhii Sheinych
Serhii Sheinych 2019 年 12 月 2 日
Understood. Thank You so much.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by