if tipo == 0 out = sum((x-y).^2).^0.5; end % Distance sum | x -y | if tipo == 1 out = sum(abs(x-y)); end % Weighted distance %加权距离 if tipo == 2 pesi = zeros(size(x));%y=zeros(size(x))表示生成一个和x同样大小的的矩阵y pesi(1) = 0.20; pesi(2) = 0.90; pesi(3) = 0.95; pesi(4) = 0.90; pesi(5) = 0.70; pesi(6) = 0.90; pesi(7) = 1.00; pesi(8) = 1.00; pesi(9) = 1.00; pesi(10) = 0.95; pesi(11:13) = 0.30; out = sum(abs(x-y).*pesi); end end
时间: 2023-06-15 17:06:34 浏览: 181
这是一个计算距离的函数,根据 `tipo` 的不同取值,计算两个向量 `x` 和 `y` 之间的距离。如果 `tipo` 的值为 0,则计算欧几里得距离;如果 `tipo` 的值为 1,则计算带权重的欧几里得距离;如果 `tipo` 的值为 2,则计算带权重的曼哈顿距离。其中,带权重的距离是指在计算距离时,不同维度上的距离具有不同的权重,比如某个维度上的距离可能更重要,就会给这个维度上的距离赋予更大的权重。
阅读全文