MATLAB - 根据某些标准提取表中的选定行

标签 matlab datatable extract subset

假设我有一个这样的表:

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

1 显然是 myTable 中的那些行,它们满足我给出的规则。

在文档中,我指出上面的行已从原始表中删除:

postsNotA = myTable.user ~= 'A' % note that I have to reverse the criterion since I'm choosing stuff that will be removed
myTable(postsNotA,:) = [];

但是,如上所述,我不想碰我原来的 table 。一种可能的解决方案是创建一个包含两列的空表:

post  date
____  ____

遍历原始表的所有行,同时查看掩码向量 postsA 的当前值,如果它等于 1,则复制我在该行中的两列我感兴趣并将这个缩小的行连接到我的小表。我想知道这个问题是否有或多或少的 1-2 行长的解决方案?

最佳答案

假设 myTable 是您的原始表。

你可以这样做

myTable(myTable.user == 'A',:)

示例代码:

user = ['A';'B';'A';'C';'B'];
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(user,Age,Height,Weight,BloodPressure)
T(T.user=='A',:)

给予:

T =

user    Age    Height    Weight          BloodPressure      
____    ___    ______    ______    _________________________

A       38     71        176       124                    93
B       43     69        163       109                    77
A       38     64        131       125                    83
C       40     67        133       117                    75
B       49     64        119       122                    80

ans =

user    Age    Height    Weight          BloodPressure      
____    ___    ______    ______    _________________________

A       38     71        176       124                    93
A       38     64        131       125                    83

关于MATLAB - 根据某些标准提取表中的选定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300187/

相关文章:

python - 移植涉及 matplotlib 设置轴位置(以像素为单位)的 Matlab 代码

c# - 具有 DebuggerDisplay 属性的 DataTable 后代丢失 DebuggerVisualizer

python - 使用 Python 从多个文本文件中提取列

excel - 如何将 Tridion 中的关键字提取为 Excel 格式?

matlab - 如何绘制频谱图函数的结果?

image - Matlab RGB 颜色表示([255 255 255] 和 [1 1 1])

MATLAB:删除行热键?

javascript - DataTable - 为什么我无法进行单个列搜索(选择输入)?

jquery - 如何在我的grails应用程序中实现jquery-datatables:1.7.5插件

python - 使用 python 从 .txt 文件中提取数据