closest index in matrix between two values
Show older comments
hello, i have 2d matrix for example:
X = [0 0 0 0 0;
1 1 1 1 1;
0 1 2 1 0;
1 1 1 1 1;
0 0 0 0 0]
i want to get closest index of columns and rows between value 2 and 0. Is there any chance to do this??
Regards
Accepted Answer
More Answers (2)
José-Luis
on 8 Jul 2016
X = [0 0 0 0 0;
1 1 1 1 1;
0 1 2 1 0;
1 1 1 1 1;
0 0 0 0 0];
[tx,ty] = find(X==2);
x_dist = abs(tx-(1:size(X,1)));
y_dist = abs(ty-(1:size(X,2)))';
dist_array = bsxfun(@plus,x_dist.^2,y_dist.^2);
[ix,iy] = find(dist_array == min(dist_array(X==0)))
Andrei Bobrov
on 8 Jul 2016
z = bwdist(X == 2).*(X == 0);
[ii,jj] = find(z == min(z(z~=0)));
2 Comments
Stephen23
on 8 Jul 2016
Note: requires the Image Processing Toolbox.
Andrei Bobrov
on 8 Jul 2016
Hi Stephen! MATLAB without Image... whot is it? :)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!