在Matlab中通过匹配值过滤数据

问题描述 投票:0回答:1

我在Matlab中有2个数据集,每个数据集都是一个2xn的数据数组,其中第一行包含时间戳。然而,并不是每个时间戳都有一个数据点。现在我想比较这些数据点,但如果不过滤任何不相互的数据点,我就无法使用索引。举个例子:

A = [ 1, 2, 3, 5, 6;
      3, 4, 5, 7, 8 ]

B = [ 1, 2, 4, 5, 6;
      9, 8, 6, 5, 4 ]

我想使用某种操作或一组操作来结束

A = [1, 2, 5, 6;
     3, 4, 7, 8 ]

B = [ 1, 2, 5, 6;
      9, 8, 5, 4 ]

使时间和数据点与索引相匹配。

我使用 ismember 来识别不相互的索引,但我在从原始集合中删除有问题的列时遇到问题。我将 ismember 输出与数据集相乘,但它所做的只是将列中的时间戳设置为零。

matlab indexing timestamp
1个回答
0
投票

可以获得共同的时间戳

t = intersect( A(1,:), B(1,:) );

然后过滤

A
B
以查找此数组中具有时间戳的列

A = A( :, ismember(A(1,:), t) );
B = B( :, ismember(A(1,:), t) );
© www.soinside.com 2019 - 2024. All rights reserved.