finding distance of distinct value
조회 수: 2 (최근 30일)
이전 댓글 표시
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 1 2 1 1 1
1 1 1 1 1 6 1
1 1 3 1 1 1 1
I(3,4) is 1 . I need to know the distance of this one from the distinct value of this matrix.i.e distances of 2,3,5,6,8. How to do this easily? and also need the matrix position of that value.Thanks in advance.
댓글 수: 0
채택된 답변
Andrei Bobrov
2011년 5월 18일
variant
o34 = zeros(size(I));
o34(3,4)=1;
o34d = bwdist(o34);
distato34 = [I(I~=1) o34d(I~=1)]
more variant
o = [3 4];
dC = arrayfun(@(x)(cumsum(ones(size(I)),x)-o(x)).^2,1:2,'un',0);
d = sqrt(dC{1} + dC{2});
l = I~=1;
out = [I(l) d(l)]
more more variant
[Hi Hj] = find(I~=1);
out = [I(I~=1) sqrt(sum(bsxfun(@minus,[Hi Hj],[3 4]).^2,2))]
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Computational Geometry에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!