[ax,ay]=size(A)
[bx,by]=size(B)
if (ax>1 && ay>1)||(bx>1 && by >1)
error('输入中存在非向量')
elseif (ax>ay) && (bx<by)
temp=bx
bx=by
by=temp
if (ax~=bx)||(ay~=by)
error('向量长度不统一')
end
elseif (ax~=bx)||(ay~=by)
error('向量长度不统一')
end
dis=0
for i=1:max(ax,ay)
dis=dis+(A(i)-B(i))^2
end
dis=sqrt(dis)
end
你这个程序有点复杂:可以简化解决,不就是求一个欧氏距离嘛,直接求2-范数(默认)就行了:代码如下:
clc
clear
a=importdata('kk.txt')
%从*.txt
文件中读取数据存于a中
[m,n]=size(a)
%a看来是一个矩阵了,size出它的行数m和列数n
norm=zeros(m,1)
%
有m行,那么需要算m个范数,将存于norm中。
for
k=1:m
norm(k)=norm(a(k,:))
%算每一行的2-范数
end
关键的已经给出,后面的就是去norm数组中的数据互相做减法然后保存到另外一个数组中就行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)