Borrar filtros
Borrar filtros

Pairwise difference between values of a vector

19 visualizaciones (últimos 30 días)
Itai
Itai el 29 de Jul. de 2012
Respondida: James Cai el 31 de En. de 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

Respuesta aceptada

the cyclist
the cyclist el 29 de Jul. de 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

Más respuestas (1)

James Cai
James Cai el 31 de En. de 2018
Nowadays, dv = abs(v-v') returns the absolute pairwise differences.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by