Delete rows only if there are at least a repeated zero value in the previous or next row of the same column
    4 views (last 30 days)
  
       Show older comments
    
    Miguel L
 on 25 Sep 2016
  
    
    
    
    
    Commented: Andrei Bobrov
      
      
 on 25 Sep 2016
            I need your help fellows. I want to remove all rows which contain at least a repeated zero value in the previous/next row of the second column. Look at the next example:
Input=
124.2  8.6  7.2  -4.8
131.1  1.8  1.4  -1.2
131.9  0.0  0.0  0.0
123.0  0.0  0.0  0.0
2323.0  3.0  3.0  3.0
2323.0  0.0  0.0  0.0
221.0  3.1  4.0  5.6
57.0  1.0  231.0  122.0
987.0  0.0  0.0  0.0
4454.0  0.0  0.0  0.0
3.0  0.0  0.0  0.0
434.0  0.0  0.0  0.0
Output=
124.2  8.6  7.2  -4.8
131.1  1.8  1.4  -1.2
2323.0  3.0  3.0  3.0
2323.0  0.0  0.0  0.0
221.0  3.1  4.0  5.6
57.0  1.0  231.0  122.0
Only it was maintened the sixth row of the original table (input) due to there was not a zero in the previous/next row of the same column (second column).
Thanks in advance for your help!
3 Comments
  Walter Roberson
      
      
 on 25 Sep 2016
				Your line
131.1  1.8  1.4  -1.2
is followed by a line that has 0 in its second column, so according to your rules it should be removed.
Perhaps you want the rule to be that if there is a set of rows in which there are at least two rows in a row with 0 in the second column, that the entire block with zeros there should be removed ?
Accepted Answer
  Walter Roberson
      
      
 on 25 Sep 2016
        Assuming that the rule is that if there is a set of rows in which there are at least two rows in a row with 0 in the second column, that the entire block with zeros there should be removed, then:
mask1 = input(:,2) ~= 0;
mask2 = mask1(1:end-1) | mask1(2:end);
keep_row = [true;mask2] & [mask2;true];
output = input(keep_row, :);
More Answers (0)
See Also
Categories
				Find more on Naming Conventions in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!