是否可以通过标记数组过滤矩阵?

时间:2015-07-06 17:20:46

标签: matlab matrix

我有一个10维矩阵,有许多列(数十万)。但是,我根据实验当天和条件实施了一个标签

所以我的原始矩阵看起来像

0.1 0.25 0.64 0.15 0.1 0.96 0.01 0.05....
                  .
                  .
                  . 
                  .
0.2 0.3  0.049 0   0.3 0.71  0.4 0.45....

我能够为当天和实验类型实现标记,因此我的矩阵看起来像

0.1 0.25 0.64 0.15 0.1 0.96 0.01 0.05....
                  .
                  .
                  . 
                  .
0.2 0.3  0.049 0   0.3 0.71  0.4 0.45....
 1   1    1    1   2    2     2   2
 1   1    2    2   2    3     3   3

顶行代表一天,底行代表一个条件。无论如何“过滤”这个矩阵,在MATLAB中按天和条件称它为A?因此,例如,如果我想要第1天条件2“迷你矩阵”,我可以得到

 0.64   0.15
      .
      .
      . 
 0.049    0

1 个答案:

答案 0 :(得分:1)

是的,您可以通过仅访问与当天或条件行中的特定值匹配的列来执行此操作。

例如,假设您的输入矩阵为A,第三行A(3,:)中的条目为日期,第四行A(4,:)中的条目为条件。

然后A(:, A(3,:) == 2)会在A中为您提供当天为2的列的子集。

A(:, A(3,:) == 2 & A(4,:) == 1)将为您提供日期为2且条件为1的列。