所以我需要构建一个x
和y
坐标的矩阵。我将x
存储在一个名为vx=0:6000;
的矩阵中,y
存储在Vy=repmat(300,1,6000);
中。
x
中的值为0,1,2,...,5999,6000
。
y
中的值为300,300,...,300,300
。
如何构建"向量"上面有x,y
坐标?
看起来像[(0,300);(1,300);...;(5999,300);(6000,300)]
。
在我完成此操作后,我想要找到另一个固定点x,y
(我将复制6000
次)与上面的矢量之间的距离,以便建立距离图随着时间的推移
非常感谢你!
答案 0 :(得分:4)
您可以在[]
X = [Vx(:), Vy(:)];
如果要计算此2D阵列中另一个点与每个点之间的距离,可以执行以下操作:
point = [10, 100];
distances = sqrt(sum(bsxfun(@minus, X, point).^2, 2));
如果您有R2016b或更新版本,您只需执行
即可distances = sqrt(sum((X - point).^2, 2));
答案 1 :(得分:3)
稍微更优雅的替代方案(在我看来)如下:
Vx = (0:1:6000).';
C = [Vx 0*Vx+300]; % Just a trick to avoid the overly verbose `repmat`.
p = [10,100]; % Define some point of reference.
d = pdist2(C,p); % The default "distance type" is 'euclidian' - which is what you need.
这使用MATLAB 2010a中引入的pdist2
函数,需要统计和机器学习工具箱。