3
比方說,我有一個簡短的載體x = [a,b,c,d,e];
什麼是計算所有的向量的成員之間的差異的最好辦法:提前計算所有差異矢量可能性
y = [e-d e-c e-b e-a
d-e d-c d-b d-a
c-e c-d c-b c-a
b-e b-d b-c b-a
a-e a-d a-c a-b];
感謝
比方說,我有一個簡短的載體x = [a,b,c,d,e];
什麼是計算所有的向量的成員之間的差異的最好辦法:提前計算所有差異矢量可能性
y = [e-d e-c e-b e-a
d-e d-c d-b d-a
c-e c-d c-b c-a
b-e b-d b-c b-a
a-e a-d a-c a-b];
感謝
,得到確切的矩陣參考,請嘗試:
x = [1;2;3;4;5]; %# note this is a column vector (matrix of rows in general)
D = squareform(pdist(x,@(p,q)q-p));
U = triu(D);
L = tril(D);
y = flipud(fliplr(L(:,1:end-1) - U(:,2:end)))
結果在這種情況下:
y =
1 2 3 4
-1 1 2 3
-2 -1 1 2
-3 -2 -1 1
-4 -3 -2 -1
先創建一個circulant matrix,然後計算第一列和其餘列之間的差異。 Here是創建循環矩陣