你好,这是一个求2000行,62列矩阵,每两个行向量之间的欧式距离matlab函数,为什么错误/急,谢谢
clca=importdata('kk.txt');a1=a.data;[m,n]=size(a1)k=0;fori=2:m-1k=k+1;sum=0;forj=2:ns...
clc
a=importdata('kk.txt');
a1=a.data;
[m,n]=size(a1)
k=0;
for i=2:m-1
k=k+1;
sum=0;
for j=2:n
sum=sum+(a1(i,j)-a1(i+k,j)).^2;
if i<j
y(j,i)=sum;
end
if j==i
y(i,j)=1;
end
if i>j
y(i,j)=y(j,i);
end
end
end
%end
[m1,n1]=size(d) 展开
a=importdata('kk.txt');
a1=a.data;
[m,n]=size(a1)
k=0;
for i=2:m-1
k=k+1;
sum=0;
for j=2:n
sum=sum+(a1(i,j)-a1(i+k,j)).^2;
if i<j
y(j,i)=sum;
end
if j==i
y(i,j)=1;
end
if i>j
y(i,j)=y(j,i);
end
end
end
%end
[m1,n1]=size(d) 展开
展开全部
你这个程序有点复杂:可以简化解决,不就是求一个欧氏距离嘛,直接求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数组中的数据互相做减法然后保存到另外一个数组中就行了。
代码如下:
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数组中的数据互相做减法然后保存到另外一个数组中就行了。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询