How to set all elements in a 2D Matrix between two indices to "1" in each row
조회 수: 1 (최근 30일)
이전 댓글 표시
I've a matrix A e.g. like this:
A =
1 0 0 1 0 0
0 0 1 0 0 1
0 1 1 0 0 0
0 1 0 1 0 0
And I want all elements between the "ones" per row to be "one" as well. The result should look like this: B =
1 1 1 1 0 0
0 0 1 1 1 1
0 1 1 0 0 0
0 1 1 1 0 0
If it helps, I also have two vectors with the indices of the first and second one.
Thanks!!
PS: If possible the solution would not use any loops since the real matrix that I have to use is very large and the program shall be very efficient.
댓글 수: 0
채택된 답변
추가 답변 (2개)
sixwwwwww
2013년 12월 5일
you can do it as follow:
for i = 1:size(A, 1)
idx = find(A(i, :));
A(i, min(idx):max(idx)) = 1;
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!