matlab中的mat文件数据读取

有一个矩阵是1*8100维,我想要分100次读取,每次读取81维与另一个81维的数据计算欧氏距离,循环计算100次,如何实现?

不太清楚你的“每次读取81维与另一个81维的数据计算欧氏距离”怎么理解。
如果是这么理解的,第一组与第二组做计算,第二组与第三组做计算……
程序可以这么写:假设1*8100维的矩阵为A,结果存在ans矩阵中
ans=zeros(1,99);
for i=1:99
a=A(81*(i-1)+1:81*i);
b=A(81*i+1:81*(i+1));
c=(a-b).^2;
ans(i)=sqrt(sum(c(:)));
end追问

我的意思就是矩阵A的100个81维的数据与另一个81维的向量B的的数据进行欧氏距离计算,获得其欧氏距离的最小值

追答

那就更简单了
程序可以这么写:假设1*8100维的矩阵为A,与之比较的矩阵为B,结果存在ans矩阵中
ans=zeros(1,100);
for i=1:100
a=A(81*(i-1)+1:81*i);
c=(a-B).^2;
ans(i)=sqrt(sum(c(:)));
end
[answer1,answer2]=min(ans);
其中answer1就是最小的欧式距离,
还可以通过answer2得到与B欧式距离最小的那个81维矩阵,A(81*(answer2-1)+1:81*answer2)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-25
Load 就可以了
相似回答