我有这样的表:
x y Z w
u1 0 0 2 2
u2 1 0 1 2
u3 3 0 0 3
u4 2 2 5 9
u5 0 3 1 4
我想计算两行之间的重叠。我的 Matlab 代码是:
for j = 1:4
x = data(j,:);
for i = j+1:5
y = data(i,:);
a = sum(max(x,y));
b = sum(min(x,y));
d = sqrt(b);
over = d/a;
end
end
但我想在结果中显示行之间的重叠?例如,overlap(1,2)
表示第一行和第二行之间的重叠。等等。结果是:重叠(1,2)=?重叠(1,3)=?重叠(1,4)=?...重叠(2,3)=?重叠(2,4)=?...我需要对代码进行什么更改?我想要像 mtarix:
Overlap(1,1) Overlap(1,2) Overlap(1,3) Overlap(1,4) Overlap(1,5)
Overlap(1,2) Overlap(2,2) Overlap(2,3) Overlap(2,4) Overlap(2,5)
Overlap(1,3) Overlap(2,3) Overlap(3,3) Overlap(3,4) Overlap(3,5)
Overlap(1,4) Overlap(2,4) Overlap(1,3) Overlap(4,4) Overlap(4,5)
Overlap(1,5) Overlap(2,5) Overlap(3,5) Overlap(4,5) Overlap(5,5)
那而不是把overlap(x,y)值获得。