以矩阵中的一条线为界,如何使一边的元素都为0,另一边的元素都为1

来源:百度知道 编辑:UC知道 时间:2024/06/03 02:47:54
设有一个矩阵
a =

0 0 0 1 0
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
以其中1所连成的线为界,不用循环,如何将该界限左边的元素都赋成1,即得到:
a =

1 1 1 1 0
1 1 1 1 0
1 1 1 0 0
1 1 0 0 0
1 0 0 0 0

a =[0 0 0 1 0
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0]

(a+bwlabel(~a,4))==1

完全不用循环是在做不出来,
下面是只用一次循环的方法

for ii = 1 : size(a, 1);
jj = 1 : find(a(ii, :), 1, 'last');
a(ii, jj) = 1;
end