【发布时间】:2015-03-09 18:11:18
【问题描述】:
我有一个矩阵X=[0 1 0 0;0 0 0 1;1 0 0 1],我想删除其中包含多个“1”的行。
我已经知道sum(X~=0,2)removes 该行将全为零。有没有办法在没有循环的情况下做到这一点?
【问题讨论】:
-
确定矩阵只有0和1吗?
我有一个矩阵X=[0 1 0 0;0 0 0 1;1 0 0 1],我想删除其中包含多个“1”的行。
我已经知道sum(X~=0,2)removes 该行将全为零。有没有办法在没有循环的情况下做到这一点?
【问题讨论】:
这段代码可以:
X( sum(X') <= 1 , :)
sum(X') <= 1 将返回包含 1 的布尔向量,该向量位于具有 1 或 0 的行的索引处。
更新:
谢谢,评论者。应该使用sum(X,2) 而不是sum(X'),以避免单行矩阵出现问题。
【讨论】:
sum(X,2) 而不是 sum(X'),否则对于单列 n-by-1 矩阵,输出将是意外的。