在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相对较新,所以非常感谢任何帮助!
答案 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
这是我想到的一种快速方式。可能存在一些需要更彻底检查的奇点。