필터 지우기
필터 지우기

Pairwise difference between values of a vector

조회 수: 19 (최근 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.

Community Treasure Hunt

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

Start Hunting!

Translated by