我有一个矩阵,例如-
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 专家需要您的宝贵建议。
我有一个矩阵,例如-
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 专家需要您的宝贵建议。
>> A(sum(A == 1, 2) >= 3, :)
ans =
1 1 1 2 0
1 1 1 1 1
在这里,sum(A == 1, 2)
计算每行A(... >= 3, :)
中的个数,并选择计数至少为 3 的行。
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