相关疑难解决方法(0)

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
Run Code Online (Sandbox Code Playgroud)

我想创建一个较小的表(但不删除原始的表!),其中包含所有帖子 - 例如 - 用户A,包括发布的日期.

在查看MATLAB的文档时(参见删除行的最后一部分),我发现MATLAB允许您根据某些标准为表创建掩码.在我的情况下,如果我做这样的事情:

postsA = myTable.user == 'A'
Run Code Online (Sandbox Code Playgroud)

我得到一个很好的掩码矢量如下:

>> postsA = 
       1
       0
       1
Run Code Online (Sandbox Code Playgroud)

其中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,:) = [];
Run Code Online (Sandbox Code Playgroud)

但是,如上所述,我会不喜欢触摸原来的桌子.这里一个可能的解决方案是创建一个包含两列的空表:

post  date
____  ____
Run Code Online (Sandbox Code Playgroud)

通过原始表的所有行进行交互,同时还查看我的掩码向量postsA的当前值,如果它等于1,则复制我感兴趣的那一行中的两列,并将此缩小的行连接到我的小桌子.我想知道的是,对于这个问题,是否存在或多或少的1-2行长解决方案?

datatable matlab extract subset

2
推荐指数
1
解决办法
8047
查看次数

标签 统计

datatable ×1

extract ×1

matlab ×1

subset ×1