3

我有一个矩阵,例如-

A=[1 1 3 0 0;
   1 2 2 0 0;
   1 1 1 2 0;
   1 1 1 1 1];

从这些“A”中,我需要计算每行 1 的数量,然后我想给出一个条件,即在扫描“A”的每一行后,如果 1 的数量 >=3,那么它就是这样。它意味着我的最终结果将是

A= [1 1 1 2 0;
    1 1 1 1 1].

我怎样才能做到这一点。Matlab 专家需要您的宝贵建议。

4

2 回答 2

5
>> A(sum(A == 1, 2) >= 3, :)

ans =

     1     1     1     2     0
     1     1     1     1     1

在这里,sum(A == 1, 2)计算每行A(... >= 3, :)中的个数,并选择计数至少为 3 的行。

于 2013-08-10T12:09:40.087 回答
0
A=[1 1 3 0 0;...
   1 2 2 0 0;...
   1 1 1 2 0;...
   1 1 1 1 1]

accept = sum((A == 1)')
i = 1;k = 1;
while i <= length(A(:,1))
    if accept(k) < 3
       A(i,:) = [];
       i = i - 1;
    end
    i = i + 1;
    k = k + 1;
end
A
于 2013-08-10T19:21:37.010 回答