2016-03-09 55 views

回答

3

你可以这样做,就像你会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,:)

更多信息。

+0

感谢您的支持。看起来超级逻辑,但是,我再次得到以下错误:“Undefined operator'>'输入参数的类型'单元格'”。我知道我的一列中仍然有一个“单元格”类型的输入。有没有一种方法可以将整个表格预先传输,以便我可以应用过滤? – user3261573

+0

@ user3261573你的实际表数据是什么样的? – Suever

+0

其中一列有单元阵列。这可能会导致问题。你知道如何解决这个问题吗? – user3261573