1
如何在Matlab中轻松过滤表格?比方说,我想过滤一个表,只保留列5中的值大于30的行。这是如何工作的?在Matlab中过滤表格
如何在Matlab中轻松过滤表格?比方说,我想过滤一个表,只保留列5中的值大于30的行。这是如何工作的?在Matlab中过滤表格
你可以这样做,就像你会normal logical indexing一样。
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
现在我们抓住所有行的列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
您也可以使用列指数访问它。
tbl(tbl{:,1} > 0.5,:)
对于你的情况,这将是有关访问表中的数据heretbl(tbl{:,5} > 30,:)
更多信息。
感谢您的支持。看起来超级逻辑,但是,我再次得到以下错误:“Undefined operator'>'输入参数的类型'单元格'”。我知道我的一列中仍然有一个“单元格”类型的输入。有没有一种方法可以将整个表格预先传输,以便我可以应用过滤? – user3261573
@ user3261573你的实际表数据是什么样的? – Suever
其中一列有单元阵列。这可能会导致问题。你知道如何解决这个问题吗? – user3261573