2d Matlab

时间:2017-04-14 07:25:51

标签: arrays matlab matrix

我有四个1-by-n矩阵。前两个矩阵表示n平面中2D点的位置(位置的x和y分量)。后两个矩阵代表n平面中另一个2D点的位置。

我想创建一个n-by-n矩阵(比如说M),其中M(i,j)是第一个矩阵中点i与点j之间的距离在第二个矩阵中。

有人可以帮忙吗?任何答案都非常感谢。

  • n是一个很大的数字,所以我正在寻找一种有效的方法

2 个答案:

答案 0 :(得分:1)

您可以使用pdist2执行此操作(请参阅documentation):

x1=[1,2,3,4,5];
y1=[6,7,8,9,10];
x2=[1,1,1,1,2];
y2=[8,3,1,2,3];
mat1=[x1',y1'];
mat2=[x2',y2'];
M = pdist2(mat1,mat2)

答案 1 :(得分:0)

另一种方法是使用bsxfun手动计算距离:

M = sqrt(bsxfun(@minus, x1(:), x2(:).').^2 + bsxfun(@minus, y1(:), y2(:).').^2);