如何将时间数据从一个矩阵匹配并复制到另一个矩阵?

时间:2017-04-01 21:43:17

标签: matlab datetime matrix

在MATLAB(R2015a)中,我有两个大型矩阵可以简化为:

A = [ 24 10 830; 24 15 830; 150 17 945; 231 40 1130; 231 45 1130]

(请注意,在A中,第3列是在第1列中编目的事件的时间)和

B = [24 13; 150 29; 231 43]

如何匹配矩阵A中第3列的时间数据并将其复制到矩阵B中的匹配和过滤事件列?

例如,我希望B中第一列的值24与A中第一列的值24相匹配,然后在A中复制相应的时间数据将B中的第三列(24为830,其为150为945等)。这应该会导致我们的新B包含来自A的时间数据:

B = [24 13 830; 150 29 945; 231 43 1130]

我对MATLAB相对较新,所以非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

首先使用B函数查找A第一行ismember第一行中元素的位置。然后使用这些位置构建新矩阵。

[~,Locb] = ismember(B(:,1),A(:,1));
Bnew = [B A(Locb,3)]


Bnew =

          24          13         830
         150          29         945
         231          43        1130

这是我想到的一种快速方式。可能存在一些需要更彻底检查的奇点。