私はそのようなテーブルを持っています:
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
2 つの行の重なりを計算したい。私の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,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)
得られた値をオーバーラップ(x,y)に置く代わりに。