如何通过给定列中的值拆分表?

时间:2019-04-26 11:19:38

标签: matlab

我有一张桌子

1,  2,   3,  4,  'good'
4, 32,  22,  1,  'bad'
2,  3,   1,  4,  'good'
9,  1,  23,  4,  'bad'

我想将此表分为两个类'good''bad'

这意味着在拆分表之后,我将拥有

表一:

1,  2,   3,  4,  'good'
2,  3,   1,  4,  'good'

表二:

4, 32,  22,  1,  'bad'
9,  1,  23,  4,  'bad'

有没有简单的方法可以做到这一点而无需重新发明轮子?

我正在使用MATLAB 2018a。

1 个答案:

答案 0 :(得分:2)

说您的桌子是这个

>> tbl = 
A   B    C   D   Rating
-----------------------
1,  2,   3,  4,  'good'
4, 32,  22,  1,  'bad'
2,  3,   1,  4,  'good'
9,  1,  23,  4,  'bad'

您可以执行以下操作:

table1 = tbl( strcmp( tbl.Rating, 'good' ), : );
table2 = tbl( strcmp( tbl.Rating, 'bad' ), : );

这将根据Rating列中的字符串创建逻辑索引数组,并将这些行分配给新表。