在 Matlab 中过滤表格

use*_*573 3 matlab filter

如何在 Matlab 中轻松过滤表格?假设我想过滤一个表并且只保留第 5 列中的值大于 30 的行。这是如何工作的?

Sue*_*ver 5

您可以像执行正常的逻辑索引一样执行此操作。

tbl = table(rand(10,1), rand(10,1), 'VariableNames', {'a', 'b'});

     a          b   
  _______    _______

  0.64432    0.20774
  0.37861    0.30125
  0.81158    0.47092
  0.53283    0.23049
  0.35073    0.84431
    0.939    0.19476
  0.87594    0.22592
  0.55016    0.17071
  0.62248    0.22766
  0.58704     0.4357
Run Code Online (Sandbox Code Playgroud)

现在我们抓取列a大于 0.5 ( tbl.a > 0.5) 的所有行

tbl(tbl.a > 0.5,:)

     a          b   
  _______    _______

  0.64432    0.20774
  0.81158    0.47092
  0.53283    0.23049
    0.939    0.19476
  0.87594    0.22592
  0.55016    0.17071
  0.62248    0.22766
  0.58704     0.4357
Run Code Online (Sandbox Code Playgroud)

您还可以使用列索引访问它。

tbl(tbl{:,1} > 0.5,:)
Run Code Online (Sandbox Code Playgroud)

对于您的情况,这将是 tbl(tbl{:,5} > 30,:)

有关访问表数据的更多信息,请访问此处