根据matlab中的条件删除表行

时间:2017-11-15 14:39:51

标签: matlab

a=[1; 2 ; 3]; b=[ 4; 5; 6 ]; T=table(a,b)。 我想删除b的值小于或等于5的表行(b <= 5)。

3 个答案:

答案 0 :(得分:1)

您可以使用logical indexing

a=[1; 2 ; 3];
b=[ 4; 5; 6 ];
T=table(a,b);

rowidx = (T.b <= 5);
T = T(~rowidx, :);

返回:

T =

  1×2 table

    a    b
    _    _

    3    6

答案 1 :(得分:1)

快速,简单。优雅:

T(T.b <= 5,:) = [];

答案 2 :(得分:-1)

另一种方法:

   a = [1; 2; 3];

   b = [4; 5; 6];

   X = [a, b];

   n = 1; m = 1;

   while (n <= size(X, 1))

       if(X(n, 2)  > 5)

           X_new(m, :) = X(n, :);

           m = m + 1;

        end

        n = n + 1;

   end

'X_new'将是必需的矩阵。