Arrays 在matlab中对齐两个阵列
我在matlab中有两个数组,用两种不同的方法表示跟踪点。在每个数组中,第一列包含帧编号,第二列和第三列是x、y坐标。轨迹不一定在同一帧开始或结束,但我想比较任何常见帧的轨迹之间的距离 我的输入数据大致如下: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 ] 我可
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
。。。