Replacing some elements in the row with maximum value along the row

5 ビュー (過去 30 日間)
Rajesh
Rajesh 2021 年 10 月 18 日
コメント済み: Rajesh 2021 年 10 月 18 日
Hi,
I want to replace some elements of each rows in a matrix with the maximum value along the rows.
For example,
A=[1 2 3 0 0;7 4 5 1 0;2 4 6 0 3] to B=[1 2 3 3 3;7 4 5 1 7;2 4 6 6 3]
  3 件のコメント
Rajesh
Rajesh 2021 年 10 月 18 日
Hi, I have matrix with many rows and columns. I want to replace some elements from each row. That is I have lot of zeros in each rows. I want to replace the zeros with the maximum no present on the same rows. As I gave an example above, let's consider the following matrix A=[1 2 3 4 0 0;2 4 6 0 0 0;3 4 7 8 0 0] In this matrix maximum of row 1 is 4, maximum of row 2 is 6 similarly for row 3 it is 8. Now, I want the following matrix from A that is B=[1 2 3 4 4 4;2 4 6 6 6 6;3 4 7 8 8 8] Hope, it is clear now
Scott MacKenzie
Scott MacKenzie 2021 年 10 月 18 日
Yes, I see now. I didn't realize that B was your example result. Just posted an answer.

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

回答 (1 件)

Scott MacKenzie
Scott MacKenzie 2021 年 10 月 18 日
There might be a simpler solution, but this seems to work:
A=[1 2 3 0 0; 7 4 5 1 0; 2 4 6 0 3]
A = 3×5
1 2 3 0 0 7 4 5 1 0 2 4 6 0 3
for i=1:size(A,1)
A(i,A(i,:)==0) = max(A(i,:));
end
B = A
B = 3×5
1 2 3 3 3 7 4 5 1 7 2 4 6 6 3

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by