比方说,我有一个这样的表:MATLAB - 在一个表中提取选定行基于一些标准
post user date
____ ____ ________________
1 A 12.01.2014 13:05
2 B 15.01.2014 20:17
3 A 16.01.2014 05:22
我想创建一个较小的表包含的所有帖子(但不删除原有的一个!) - 例如 - 用户A,包括发布日期。
当看着MATLAB's documentation(请参阅删除行的最后一部分)时,我发现MATLAB允许您根据某些标准为表创建掩码。所以在我的情况下,如果我做这样的事情:
postsA = myTable.user == 'A'
我得到一个不错的掩码矢量如下:
>> postsA =
1
0
1
其中1S显然在那些行myTable的,满足我给出的规则。
在我已经指出,在上述行机制的文档从原始表中删除:
postsNotA = myTable.user ~= 'A' % note that I have to reverse the criterion since I'm choosing stuff that will be removed
myTable(postsNotA,:) = [];
不过,我想 - 上面说 - 喜欢不碰我的原始表。这里是一个可能的解决方案是创建一个空表有两列:
post date
____ ____
interate通过我的原始表中的所有行,同时也看着我的面具矢量postsA的当前值,如果它等于1 ,复制我感兴趣的那一行中的两列,并将这个缩小的行连接到我的较小的表中。我想知道的是,如果这个问题的解决方案或多或少有1-2行的话?
如何'表(t1.post(的strcmp(t1.user, 'A')),t1.date(的strcmp(t1.user, 'A'))) ','t1'是你原来的桌子? – Divakar 2014-12-04 17:35:42
这将返回一个空表。由于我的数据集很大,我重新创建了与原始文章中相同的表格,以测试您的方式。你测试过了吗?如果是这样,你可以请你发布你的代码,以便我可以比较。 – rbaleksandar 2014-12-04 18:08:24
感谢您的帮助! – rbaleksandar 2014-12-04 18:29:30