Matlab中,已知两组点坐标,求遍历形式下两组坐标点的距离

比如A=[1:4;2:5]%每个列向量为一个点,A有4个点B=[1:3;0:2]%B有3个点我想求得A中的A1、A2、A3、A4分别到B1的距离,然后A1、A2、A3、A... 比如A=[1:4;2:5] %每个列向量为一个点,A有4个点
B=[1:3;0:2] %B有3个点
我想求得 A中的 A1、A2、A3、A4分别到B1的距离,然后 A1、A2、A3、A4分别到B2的距离,A1、A2、A3、A4分别到B3的距离
展开
 我来答
dukinkin
推荐于2016-11-14 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:939万
展开全部
d1=A-repmat(B(:,1),[1 4]); %A到B1的向量
d1=sqrt(sum(d1.^2,1)); %计算距离

d2=A-repmat(B(:,2),[1 4]); %A到B2的向量
d2=sqrt(sum(d1.^2,1)); %计算距离

d3=A-repmat(B(:,3),[1 4]); %A到B2的向量
d3=sqrt(sum(d3.^2,1)); %计算距离
hhhhhh源
2020-04-15
知道答主
回答量:2
采纳率:0%
帮助的人:959
展开全部
A=permute(A,[1 3 2]);%预处理,交换A的第二维和第三维,将A改为2*1*4三维数组
distance_vector=A-B;%得到2*3*4三维数组,第一维即各个距离向量,参见手册“基本运算的兼容数组大小”
distance_3D=vecnorm(distance_vector);%第一个维度各向量的模,即距离,得到1*3*4三维数组
distance=squeeze(distance_3D);%压缩不必要的长度为1的第一维,得到3*4二维数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式