finding nearest distance of a distinct value

1 visualizzazione (ultimi 30 giorni)
Hi, suppose I have a matrix as follows:
I =
1 1 5 1 1 1 8
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 5 2 1 1 1
1 1 1 1 1 5 1
1 1 1 1 1 1 1
I(3,4) is 1 . I need to know the distance and position of nearest 5 of this matrix from this 1. How to do this easily?Thanks in advance.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 18 Mag 2011
EDIT
[Hi Hj] = find(I~=1);
d = [Hi Hj I(I~=1) sqrt(sum(bsxfun(@minus,[Hi Hj],[3 4]).^2,2))];
ds = sortrows(d,4);
d5 = ds(ds(:,3)==5,:);
out = d5(1,:)
more
[Hi Hj] = find(I==5);
d = [Hi Hj sqrt(sum(bsxfun(@minus,[Hi Hj],[3 4]).^2,2))];
[~,jj] = min(d(:,3));
out = d(jj,:)

Più risposte (0)

Categorie

Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by