Pairwise difference between values of a vector

조회 수: 6 (최근 30일)
Itai
Itai 2012년 7월 29일
답변: James Cai 2018년 1월 31일
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

채택된 답변

the cyclist
the cyclist 2012년 7월 29일
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

추가 답변 (1개)

James Cai
James Cai 2018년 1월 31일
Nowadays, dv = abs(v-v') returns the absolute pairwise differences.

카테고리

Help CenterFile Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by