【问题标题】:Remove Row under a condition在条件下删除行
【发布时间】: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吗?

标签: matlab matrix


【解决方案1】:

这段代码可以:

 X( sum(X') <= 1 , :)

sum(X') &lt;= 1 将返回包含 1 的布尔向量,该向量位于具有 1 或 0 的行的索引处。

更新: 谢谢,评论者。应该使用sum(X,2) 而不是sum(X'),以避免单行矩阵出现问题。

【讨论】:

  • 你应该使用 sum(X,2) 而不是 sum(X'),否则对于单列 n-by-1 矩阵,输出将是意外的。
猜你喜欢
  • 2018-09-19
  • 1970-01-01
  • 2019-12-13
  • 2021-02-28
  • 2016-10-19
  • 1970-01-01
  • 2022-01-26
  • 2022-12-17
  • 2014-06-08
相关资源
最近更新 更多