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

조회 수: 1 (최근 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 CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by