【问题标题】:How to delete all columns in matrix containing zeros in some rows in MATLAB如何在MATLAB中删除包含某些行中零的矩阵中的所有列
【发布时间】:2019-04-09 15:41:16
【问题描述】:

我有一个大小为4x16 的矩阵,我需要删除第一行值为零的所有列。例如:这是矩阵示例:

X = [1 0 0 0; 0 1 0 0; 0 0.4 0 0; 0 0 0 0.8; 0.5 0 0 0];

二维矩阵 (X) 如下所示:

      1   0   0   0
      0   1   0   0
      0  0.4  0   0
      0   0   0  0.8
     0.5  0   0   0

所以我需要的只是X = [1 0 0 0;0.5 0 0 0 ],因为这些列的第一行与零不同。

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    只需排除该行号:

    X = X(X(:,1) ~= 0, :);
    

    X(:,1) ~= 0 是第一列的布尔向量,如果元素的值不是0,则为真。

    【讨论】:

    • 您好,谢谢您的回复..我看到您将整个列与 0 进行比较,因此如果该列不为零,我们会保留。除非,我们会删除它。但我需要的是只将每一列的第一行与零进行比较,并删除那些第一行等于 0 的列。
    • @Gze 这正是这里所做的。您说“我看到您将整列与 0 进行比较”-> 这是错误的,matlab 总是执行逐个元素的比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多