我有一个像 -
这样的矩阵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专家需要您宝贵的建议。
答案 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