关于用matlab计算两个向量距离的代码编写.

问题描述:

关于用matlab计算两个向量距离的代码编写.
首先,我要求距离的两个向量,都是60维的,但是下面为了简单说明问题,我以三维的进行举例.
[5,48,6]&[2,7,0],以每个向量中最大的值为分母,对向量归一化,把向量中的值都变成1到5之间的数.
[5/48,48/48,6/48]&[2/7,7/7,0/7],然后,0-0.2之间的数,归为1,0.2-0.4之间的数,归为2……以为类推,0.8-1之间的数,归为5.(只有1-5五个值,没有0)
因此以上两个向量变为[1,5,1]和[2,5,1],然后计算两个向量的欧氏距离,即每一维对应维值想减求平方,再加和,然后对最后的和的值开方.
谢谢大侠了.
还有那个规整化的过程啊,我也要的.
1个回答 分类:综合 2014-10-09

问题解答:

我来补答
function [a] = my_normalize(a)
a_max = max(a);
a = a/a_max;
a = ceil(a*5);
%--your main program---
a = [your vector data 1];
b = [your vector data 2];
a = my_normalize(a);
b = my_normalize(b);
distance = (a - b)*(a - b)'
 
 
展开全文阅读
剩余:2000
下一页:数学函数值域