关于MATLAB的一些问题现在知道x1,x2,x3...x25,如何编辑使得分别求rij=xi-xj的值(就是x1-x1,x1-x2,x1-x3.共有625项)我的真实问题是这样的,已知x1,x2,x3...x25,25个二维向量,现在要求出rij=norm(xi-xj,2)的值,i=1
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/20 09:16:46
关于MATLAB的一些问题现在知道x1,x2,x3...x25,如何编辑使得分别求rij=xi-xj的值(就是x1-x1,x1-x2,x1-x3.共有625项)我的真实问题是这样的,已知x1,x2,x3...x25,25个二维向量,现在要求出rij=norm(xi-xj,2)的值,i=1
关于MATLAB的一些问题
现在知道x1,x2,x3...x25,如何编辑使得分别求rij=xi-xj的值(就是x1-x1,x1-x2,x1-x3.共有625项)
我的真实问题是这样的,已知x1,x2,x3...x25,25个二维向量,现在要求出rij=norm(xi-xj,2)的值,i=1:25,j=1:25;rij一共有625个值,最终结果生成一个25x25的矩阵.LS,
关于MATLAB的一些问题现在知道x1,x2,x3...x25,如何编辑使得分别求rij=xi-xj的值(就是x1-x1,x1-x2,x1-x3.共有625项)我的真实问题是这样的,已知x1,x2,x3...x25,25个二维向量,现在要求出rij=norm(xi-xj,2)的值,i=1
给你介绍两种方法吧
第一种是比较直观的循环的方法,不过循环的速度是相对第二种方法比较慢的(对于你这个程序来说差不了多少),具体程序如下:
x=[1:25]; % 这是把你的数写成一个行向量的形式
r=zeros(25);
for index1=1:25
for index2=1:25
r(index1,index2)=x(index1)-x(index2);
end
end
第二种方法为了避免用循环,咱使用矩阵的形式.
x=[1:25]; % 这是把你的数写成一个行向量的形式
a=repmat(x',[1,25]);
b=repmat(x,[25,1]);
result=a-b;
这两种得到的结果是相同的,我让x=[1:25];进行了一下验证,结果如下图: