如何计算矩阵中1的数量

时间:2013-08-10 12:03:05

标签: matlab

我有一个像 -

这样的矩阵
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专家需要您宝贵的建议。

2 个答案:

答案 0 :(得分:5)

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

ans =

     1     1     1     2     0
     1     1     1     1     1

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

答案 1 :(得分: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