How to find the distance between two non-zero (the element is a one) elements in a matrix
조회 수: 3 (최근 30일)
이전 댓글 표시
I have a matrix with entries as "1" at random places and i need to find (a) find its non-zero neighbours (b) find the euclidean distance between its non-zero neighbours and the pixel itself
댓글 수: 0
채택된 답변
Andrei Bobrov
2012년 2월 17일
use function pdist from Statistics Toolbox
a = rand(10)<.07
[i1 j1] = find(a);
out = tril(ones(numel(i1)),-1)
out(out~=0) = hypot(pdist(i1),pdist(j1))
OR without pdist
[i1 j1] = find(a);
idx = [i1 j1];
ij = arrayfun(@(ii)tril(bsxfun(@minus,idx(:,ii),idx(:,ii).'),-1),1:2,'un',0);
out = hypot(ij{:})
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!