删除矩阵中的确定行

时间:2013-11-27 04:36:11

标签: arrays matlab matrix

我有一个这样的数组但有更多行:

104,206   99,557        96,667   1  33  1   120,993     0
104,708   99,189    96,641   6  14  1   123,989     65536
107,099   102,732   98,641   0  46  1   118,899     131072
104,985   101,174   98,251   5  30  2   118,445     196608
108,86    103,355   103,494  0  21  1   118,423     262144

我需要一个循环,当第4列为0时删除所有行。

我需要对所有行执行此操作,结果如下:

104,206   99,557    96,667  1   33  1   120,993     0
104,708   99,189    96,641  6   14  1   123,989     65536
104,985   101,174   98,251  5   30  2   118,445     196608

2 个答案:

答案 0 :(得分:2)

在一行中(使用logical indexing):

data(data(:,4)==0,:) = [];

示例:

>> data = [5     8     6     0     9
           1     3     3     5     2
           4     5     6     0     8
           2     2     7     3     5];

>> data(data(:,4)==0,:) = []

data =

     1     3     3     5     2
     2     2     7     3     5

答案 1 :(得分:0)

data = randi(10,1000,10) -1; % random data
marks = find(data(:,4)); % find only returns non-zero elements
clean_data = data(marks,:); % return all data on row /marks/