in matlab delete an entire row if the elements in certain columns equal zero

前端 未结 3 1488
谎友^
谎友^ 2021-01-27 14:07

I matlab I have a matrix of 4 columns. I want to delete an entire row if the elements in columns two, three and four all equal zero.

So, I think I need to do something l

3条回答
  •  误落风尘
    2021-01-27 14:43

    % toy example
    >> a = [1,0,0,1; 
            2,0,2,0; 
            3,0,0,0; 
            4,4,0,4; 
            5,0,0,0; 
            6,0,0,0; 
            7,0,7,0; 
            8,0,0,8; 
            9,0,0,0]; 
    
    % solution
    >> a(sum ( a(:, 2:4) == 0, 2) == 3, :) = []
    a =
       1   0   0   1
       2   0   2   0
       4   4   0   4
       7   0   7   0
       8   0   0   8
    

    I.e. if the sum of the number of zeros across columns 2 to 4 equals 3, delete that row.
    (i.e. use logical indexing)

提交回复
热议问题