以矩阵中的一条线为界,如何使一边的元素都为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
以其中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