matlab求这几个点的两两直线距离4\x05818\x051381\x056351\x053238\x051117\x051222\x053819\x054562\x0512是任意的两个点的直线距离 不是点到直线距离

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 04:08:01
matlab求这几个点的两两直线距离4\x05818\x051381\x056351\x053238\x051117\x051222\x053819\x054562\x0512是任意的两个点的直线距离 不是点到直线距离

matlab求这几个点的两两直线距离4\x05818\x051381\x056351\x053238\x051117\x051222\x053819\x054562\x0512是任意的两个点的直线距离 不是点到直线距离
matlab求这几个点的两两直线距离
4\x0581
8\x0513
81\x0563
51\x0532
38\x0511
17\x0512
22\x0538
19\x0545
62\x0512
是任意的两个点的直线距离 不是点到直线距离

matlab求这几个点的两两直线距离4\x05818\x051381\x056351\x053238\x051117\x051222\x053819\x054562\x0512是任意的两个点的直线距离 不是点到直线距离
x=[4\x0581
8\x0513
81\x0563
51\x0532
38\x0511
17\x0512
22\x0538
19\x0545
62\x0512];
x1=x(:,1);y1=x(:,2);
for i=1:8
for j=i+1:9
d(i,j)=sqrt((x1(i)-x1(j))^2+(y1(i)-y1(j))^2);
end
end
d
d =
Columns 1 through 8
0 68.1175 79.0759 67.8970 77.8203 70.2140 46.6154 39.0000
0 0 88.4816 47.0106 30.0666 9.0554 28.6531 33.8378
0 0 0 43.1393 67.4759 81.8352 64.0781 64.5600
0 0 0 0 24.6982 39.4462 29.6142 34.5398
0 0 0 0 0 21.0238 31.3847 38.9487
0 0 0 0 0 0 26.4764 33.0606
0 0 0 0 0 0 0 7.6158
0 0 0 0 0 0 0 0
Column 9
90.1388
54.0093
54.4243
22.8254
24.0208
45.0000
47.7074
54.2033
>>

计算已知空间点P到已知直线L的距离:
已知两点确定了一条空间直线,求出直线的方向向量。计算P点与直线L上其中一点的空间向量,然后计算它与直线方向向量的外积。则点到空间直线的距离就是外积的模与空间直线方向向量的模相除。
以下为简单的MATLAB代码,输入为空间点P,和直线上的两点:
function [ d ] = DisPtToLine( P, CorPts )

全部展开

计算已知空间点P到已知直线L的距离:
已知两点确定了一条空间直线,求出直线的方向向量。计算P点与直线L上其中一点的空间向量,然后计算它与直线方向向量的外积。则点到空间直线的距离就是外积的模与空间直线方向向量的模相除。
以下为简单的MATLAB代码,输入为空间点P,和直线上的两点:
function [ d ] = DisPtToLine( P, CorPts )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
l = [ CorPts(1) - CorPts(4), CorPts(2) - CorPts(5), CorPts(3) - CorPts(6) ];
pl = [ P(1) - CorPts(1), P(2) - CorPts(2), P(3) - CorPts(3) ];
tem = cross(pl, l);
d = norm( tem ) / norm( l );

end

收起

>> X=[481;8 13;81 63;51 32;38 11;17 12;22 38;19 45;62 12;];
>> y=pdist(X)
y =
Columns 1 through 14
68.1175 79.0759 67.8970 77.8203 70.2140 46.6154 39.0000 90.1388 ...

全部展开

>> X=[481;8 13;81 63;51 32;38 11;17 12;22 38;19 45;62 12;];
>> y=pdist(X)
y =
Columns 1 through 14
68.1175 79.0759 67.8970 77.8203 70.2140 46.6154 39.0000 90.1388 88.4816 47.0106 30.0666 9.0554 28.6531 33.8378
Columns 15 through 28
54.0093 43.1393 67.4759 81.8352 64.0781 64.5600 54.4243 24.6982 39.4462 29.6142 34.5398 22.8254 21.0238 31.3847
Columns 29 through 36
38.9487 24.0208 26.4764 33.0606 45.0000 7.6158 47.7074 54.2033
%%%X中每一行是点的横坐标和纵坐标,简称第一个点。
y得到的任意两点之间的直线距离。y(1)是第一个点和第二个点的距离,y(2)是第一个点和第三个点之间的距离,y(3)是第一个点和第四个点之间的距离....y(9)是第二个点和第三个点之间的距离,y(10)是第二个点和第四个点之间的距离...一次类推。总共n*(n-1)/2个距离。

收起