Arrays 在matlab中对齐两个阵列

Arrays 在matlab中对齐两个阵列,arrays,matlab,Arrays,Matlab,我在matlab中有两个数组,用两种不同的方法表示跟踪点。在每个数组中,第一列包含帧编号,第二列和第三列是x、y坐标。轨迹不一定在同一帧开始或结束,但我想比较任何常见帧的轨迹之间的距离 我的输入数据大致如下: d1 = d2 = [ 130 50 20; [ 128 48 17; 131 50 21; 129 52 19; ... ... 195 70 36 ] 180 65 34 ] 我可

我在matlab中有两个数组,用两种不同的方法表示跟踪点。在每个数组中,第一列包含帧编号,第二列和第三列是x、y坐标。轨迹不一定在同一帧开始或结束,但我想比较任何常见帧的轨迹之间的距离

我的输入数据大致如下:

d1 =              d2 = 
[ 130 50 20;      [ 128 48 17;
  131 50 21;        129 52 19;
  ...               ...
  195 70 36 ]       180 65 34 ]
我可以使用

commonFrames = intersect(d1(:,1), d2(:,1));
但我一直在思考如何对齐这些阵列(最好没有for循环)


我将沿着
[frameNumber x1 y1 x2 y2]
的行查找输出,其中x1,y1是来自数组d1的frameNumber的值,x2,y2是来自数组d2的frameNumber的值。

'intersect'函数有两个额外的输出值:输入数组中公共值的索引

您的脚本可以如下所示:

[commonFrames,ia,ib] = intersect(d1(:,1), d2(:,1));
commonData = [commonFrames d1(ia,2:3) d2(ib,2:3)];

这就成功了,谢谢。我真的应该更仔细地阅读
帮助intersect
。。。