向量的距离与计算 (1)欧氏距离: Matlab中命令:dist(A,B)计算A中每个行向量与B中每个列向量之间欧氏距离,A的行向量维数必须等于B的列向量维数. 例7. a=[1,2,3],b=[-1,5,6],c=[1,0,1]求a,b,c欧氏距离 解: dist(a,b')=4.6904, dist(a,c')= 2.8284 dist(c,b')= 7.3485
(2)绝对距离: Matlab中命令:mandist(A,B)计算A中每个行向量与B中每个列向量之间绝对距离,A的行向量维数必须等于B的列向量维数. 例8. 求例6中向量之间的绝对值距离. dist(a,b')=4.6904, dist(a,c')= 2.8284 dist(c,b')= 7.3485 mandist(a,b')=8;mandist(a,c')=4; mandist(c,b')=12 解: 由此,你发现了什么?
(3) 闵可夫斯基距离: 当 r=1,2 时分别为绝对距离和欧氏距离 (4) 马氏距离: 其中 V是一个实对称正定矩阵,通常取样本的协方差矩阵,当V=E时即为欧氏距离. 以上距离,在Matlab (6.)中有命令: pdist 具体如下:
设样本X是m个n维行向量所组成的矩阵,则有: pdist(X) — 样本X中各n维向量的欧氏距离 pdist(X, 'cityblock') — 各n维向量的绝对距离 pdist(X, ‘minkowski',r) — 闵可夫斯基距离 pdist(X, 'mahal') — 各n维向量的马氏距离 注意: 而pdist(X)是个一行 列 矩阵。各列分别表示X中各行向量按如下顺序的距离 (1,2),(1,3),…(1,m),(2,3),(2,4),…(2,m),…(m-1,m)
d2=(pdist(Apf,'cityblock'))'; d3=pdist(Apf,'mahal'))'; d=[d1,d2,d3] 例1. 现测得6只Apf和9只Af蠓虫的触长,翅长数据如下:Apf:(1.14,1.78), (1.18,1.96), (1.20,1.86), (1.26,2.00), (1.28,2.00), (1.30,1.96) Af:(1.24,1.72), (1.36,1.74), (1.38,1.64), (1.38,1.82), (1.38,1.90), (1.40,1.70), (1.48,1.82),(1.54,1.82), (1.56,2.08) 计算两类蠓虫的各自之间的欧氏、绝对、马氏距离 Apf=[1.14,1.78;1.18,1.96;1.2,1.86;1.26,2.;1.28,2; 1.30,1.96] ; 解: Af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82; 1.38,1.90 ; 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08]; d1=(pdist(Apf))'; d2=(pdist(Apf,'cityblock'))'; d3=pdist(Apf,'mahal'))'; d=[d1,d2,d3]
表一.Apf蠓虫之间的距离 Apf蠓虫 欧氏距离 绝对距离 马氏距离 d12 0.1844 0.2200 2.5626 d13 0.1000 0.1400 0.9883 d14 0.2506 0.3400 2.4942 d15 0.2608 0.3600 2.5318 d16 0.2408 2.5478 d23 0.1020 0.1200 2.2507 d24 0.0894 1.5470 d25 0.1077 2.0430 d26 3.0777 d34 0.1523 0.2000 1.6534 d35 0.1612 1.5873 d36 0.1414 1.6025 d45 0.0200 0.5129 d46 0.0566 0.0800 1.6616 d56 0.0447 0.0600 1.1764
Af蠓 欧氏距 绝对距 马氏距 d12 0.1217 0.1400 1.4423 d37 0.2059 0.2800 1.3971 d13 0.1612 0.2200 2.3963 d38 0.2408 0.3400 1.6847 d14 0.1720 0.2400 1.4225 d39 0.4754 0.6200 3.4103 d15 0.2280 0.3200 1.5517 d45 0.0800 0.7917 d16 0.1800 2.2078 d46 1.3659 d17 0.2600 2.6110 d47 0.1000 1.2987 d18 0.3162 0.4000 3.3635 d48 0.1600 2.0780 d19 0.4817 0.6800 3.3694 d49 0.4400 2.1271 d23 0.1020 0.1200 1.1705 d56 0.2010 2.1520 d24 0.0825 0.6601 d57 0.1281 1.8990 d25 1.4345 d58 0.1789 2.6482 d26 0.0566 0.8277 d59 0.2546 0.3600 1.8449 d27 0.1442 0.2000 1.2266 d67 0.9689 d28 0.1970 1.9404 d68 0.1844 1.4149 d29 0.3945 0.5400 2.6612 d69 0.4123 2.9389 d34 1.7814 d78 0.0600 0.7792 d35 2.5731 d79 0.2720 2.0832 d36 0.0632 0.4756 d89 0.2608 2.4183
[F,i]=sort(d) 如果我们要将这些距离按大小排序,如何快捷地实现?在Matlab中方法如下: 其中sort(d)将d中距离按从小到大排列,而i中各列则指出了排序后各距离原来的序号. i = 13 13 13 15 15 2 14 14 15 7 6 7 2 7 11 6 9 12 8 2 10 9 8 14 12 10 8 10 12 6 11 1 3 1 11 4 5 3 5 3 5 1 4 4 9
作业: 将下表给出的数据粘帖到matlab,然后进行各指标排序,从而得到各省、市、自治区的各指标排名矩阵D,安徽省排名如何?
地 区 企业单位数 工 业 实收资本 资 产 流动资产 固定资产 (个) 总 产 值 增 加 值 合 计 合 计 年平均余额 原价合计 全 国 31423 27220.91 7128.11 10256.78 28354.46 14029.75 13750.96 16700.30 北 京 1023 1318.03 295.54 410.09 1166.26 715.76 720.43 503.53 天 津 1350 1365.99 324.44 553.06 1421.84 746.63 714.29 759.44 河 北 760 424.94 122.38 223.92 625.90 249.95 234.68 411.51 山 西 101 74.70 25.81 71.94 207.67 49.90 44.99 141.82 内蒙古 89 65.92 20.12 29.83 122.25 80.91 78.02 44.65 辽 宁 1070 894.67 238.90 406.79 1097.95 462.38 447.83 822.40 吉 林 245 412.72 121.57 118.49 353.28 169.53 145.29 225.09 黑龙江 147 114.82 36.67 60.26 219.85 103.00 102.17 118.40 上 海 3669 3904.80 1024.35 1655.58 4385.45 2332.52 2324.98 2331.17 江 苏 3601 3333.31 835.68 1271.05 3311.92 1575.00 1557.56 2008.05 浙 江 2715 1532.12 364.72 503.43 1424.40 747.77 723.92 794.17 安 徽 277 246.80 78.12 149.86 364.69 141.13 138.21 251.70 福 建 2923 1822.48 490.68 689.96 1940.28 894.00 854.22 1179.72 江 西 177 106.87 29.42 46.50 139.40 63.58 64.86 79.85 山 东 2020 1457.01 431.75 493.52 1397.82 657.56 621.88 805.65 河 南 421 262.13 86.71 117.83 415.29 199.36 192.49 303.22 湖 北 392 382.38 135.04 196.03 529.20 214.44 191.99 311.53 湖 南 239 147.15 43.05 72.96 188.77 79.84 78.04 137.53 广 东 9020 8490.96 2153.18 2658.90 7679.21 3940.62 3932.87 4614.89 广 西 238 147.43 44.93 87.73 248.77 94.42 91.86 162.90 海 南 94 40.54 10.25 29.47 60.12 26.75 28.06 34.33 重 庆 151 179.87 56.44 119.17 260.17 110.92 112.61 208.34 四 川 268 188.83 109.31 287.94 127.31 117.23 156.47 贵 州 76 21.56 6.59 23.09 52.05 27.52 25.01 20.75 云 南 120 69.59 22.34 55.06 125.82 53.78 53.35 82.71 西 藏 5 0.04 0.02 0.33 0.50 0.20 0.18 0.28 陕 西 130 140.73 47.32 67.25 208.45 105.35 95.82 123.96 甘 肃 37 36.02 10.29 13.39 55.57 27.39 27.38 29.02 青 海 9 5.39 1.13 2.71 8.75 4.23 2.65 4.84 宁 夏 24 19.36 6.48 10.30 27.59 14.90 15.20 15.12 新 疆 32 13.74 4.06 8.99 27.31 13.13 12.91 17.22