Pairwise difference between values of a vector
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Itai
am 29 Jul. 2012
Beantwortet: James Cai
am 31 Jan. 2018
Hello all, I want to calculate the mean of all absolute pairwise differences (Ei-Ej) from a long set of values. for example (3 1 2) the differences are 3-1=2, 3-2=1, 1-2=1 and the mean (2+1+1)/3=1.33. Thanks for helping
0 Kommentare
Akzeptierte Antwort
the cyclist
am 29 Jul. 2012
One way:
% The data
v = [3 1 2];
% Number of elements
nv = numel(v);
% Absolute pairwise diifferences
dv = abs(bsxfun(@minus,v,v'));
% Sum the differences (This double-counts, but we'll double-count the denominator, too)
sdtv = sum(dv(:));
% Number pairs (also double-counted)
np = nv^2 - nv;
% The mean
mdtv = sdtv/np
0 Kommentare
Weitere Antworten (1)
James Cai
am 31 Jan. 2018
Nowadays, dv = abs(v-v') returns the absolute pairwise differences.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Argument Definitions finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!